我们的API实现存在问题。我们正在使用Slim Framework,Nginx服务器中的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:function(xhr){xhr.setRequestHeader('X-Test-Header','test-value');},
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);
}
}
});
如果您有类似问题的经验,可否请您指导我们在客户端解决此问题
参考文献:
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 :(得分: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