XMLHttpRequest无法加载,没有’Access-Control-Allow-Origin’标头(无法读取JavaScript / jQuery中的Ajax响应)
我正在使用jQuery向服务器发送Ajax请求,下面是代码片段。
$.ajax({ type: 'POST', url: "https://store.example.com/account?", data: "cf=cw&operation=update" })
当然,“请求页面”和“Ajax请求的URL”在同一个域中。 仍然,我在浏览器控制台中看到指定的错误消息,并且无法使用JavaScript / jQuery读取响应。 请帮帮我。
错误消息:XMLHttpRequest无法加载https://store.example.com/account ?。 请求的资源上不存在“Access-Control-Allow-Origin”标头。 因此,不允许原点’ http://store.example.com ‘访问。
请求页面和请求的URL是否在同一个域中。 你能尝试使用相对路径访问url吗?
$.ajax({ type: 'POST', url: "/account?", data: "cf=cw&operation=update" })
只有当发送方和接收方的端口,协议和域相等时,AJAX请求才有可能,否则可能导致CORS。 CORS代表跨源资源共享,必须在服务器端支持。
解
JSONP
JSONP或“带填充的JSON”是在Web浏览器中运行的JavaScript程序中使用的通信技术,用于从不同域中的服务器请求数据,这是典型Web浏览器因同源策略而禁止的。
例
$.ajax({ type: 'POST', url: "https://store.example.com/account?", dataType: 'jsonp', success: function (data) { //code } });
希望这给你一个想法伴侣.. 🙂