2013-07-12 124 views
0

我們的API實現有問題。我們在Nginx服務器中使用Slim Framework,PHP實現API 假設我們在域api.mydomain.com中實現了我們的api,並且我們嘗試發送GET, POST,PUT請求到像services.mydomain.com或apps.mydomain.com.這樣的域名。我們的請求需要爲'x-api-key'和'x-session-key'添加自定義頭文件以提高安全性。但是使用jquery當我們嘗試添加任何方法時,我們無法將請求發送到不同的域。我們嘗試了通過將兩種方式爲交叉瀏覽器請求添加自定義標頭

頭:{ 'X_API_KEY':varibaleName.apiSecretKey}, beforeSend:功能(XHR){xhr.setRequestHeader( 'X試驗報頭', '測試值'); },

jQuery.ajax({ 
       url: secretIdUrl, 
        type:'GET', 
        crossDomain: true, 
        //headers: { 'X_API_KEY' : varibaleName.apiSecretKey }, 
        beforeSend: function(xhr){xhr.setRequestHeader('X-Test-Header', 'test-value');}, 
       dataType: "json", 

       success: function (data) {   
         if(data.results){ 
           widgetControl.setSecretID(data.results.id); 
         } 
       } 
      }); 

能否請您指導一下,如果你有類似的問題

參考經驗解決客戶端解決此問題在Ajax請求: http://enable-cors.org
http://dev.opera.com/articles/view/dom-access-control-using-cross-origin-resource-sharing
http://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/

回答

0

嘗試:

location/{ 
    add_header 'Access-Control-Allow-Origin' '*'; 
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; 
    add_header 'Access-Control-Allow-Headers' 'X_API_KEY'; # and all headers ', ' separated 
} 

更多add_header的:http://wiki.nginx.org/HttpHeadersModule#add_header

相關問題