javascript-跨源资源共享(CORS)问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-跨源资源共享(CORS)问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1581字,纯文字阅读大概需要3分钟。
内容图文
![javascript-跨源资源共享(CORS)问题](/upload/InfoBanner/zyjiaocheng/659/6ed6f4e206be4f089916df1992b9d60e.jpg)
我们有一些Web服务返回xml atom响应.它们托管在SAP NetWeaver Gateway应用程序服务器上.他们需要BASIC身份验证才能访问它们.响应包含以下标头以支持CORS:
access-control-allow-origin: *
access-control-allow-methods: POST, GET, OPTIONS, PUT, DELETE, HEAD
access-control-allow-headers: Content-Type
access-control-max-age: 1728000
我们有一个HTML5应用,该应用使用jquery调用服务,如下所示:
var url = "http://mytesturl.com/test/";
$.ajax({
url: url,
async: true,
contentType:"application/atom+xml",
type: "GET",
crossdomain: true,
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', make_base_auth(uname, passwd));
}
})
.done(function( data, textStatus, jqXHR ){alert("success");})
.fail(function( jqXHR, textStatus, errorThrown ){
console.log(jqXHR.status);
alert(errorThrown + jqXHR.status);
});
尽管服务器响应中出现了标头,但仍继续出现CORS错误,如下所示:
Failed to load resource: the server responded with a status of 401 (Unauthorized)
Failed to load resource: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8383' is therefore not allowed access.
用户名(uname)和密码(passwd)正确.如果尝试使用RestClient之类的工具调用服务,则可以在响应中看到标头.我已经尝试在Chrome 31.0版和Safari 6.0.5版中进行测试.我不确定缺少什么.任何有助于解决该问题的建议都很好.
谢谢.
解决方法:
您似乎忘记了将Authorization标头包含在允许的标头列表中:
access-control-allow-headers: Content-Type, Authorization
您的客户端代码正在发送一个Authorization标头(基本身份验证材料),因此服务器必须在CORS级别上明确允许此标头.
还要确保服务器实际上是使用那些标头响应来自客户端的OPTIONS动词请求.
内容总结
以上是互联网集市为您收集整理的javascript-跨源资源共享(CORS)问题全部内容,希望文章能够帮你解决javascript-跨源资源共享(CORS)问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。