我很难在两个域之间尝试使用简单的jQuery Ajax。
当我尝试在网站A中执行Ajax时,在开发人员工具的网络部分中,我得到了“404未找到”#39;在与Site B相关的GET方法中。 我还在控制台中看到此消息:" ...缺少CORS标题' Access-Control-Allow-Origin'"
在"网站A"我是这样的:
<script>
var xhr = new XMLHttpRequest();
xhr.open("get", "http://domainB.com/resource.php", true);
xhr.onload = function () {
console.log('Connected!');
};
xhr.send(null);
$.ajax({
url: 'http://domainB.com/resource.php',
}).done(function ($result) {
//somecode
});
</script>
在资源的服务器上(&#34;网站B&#34;):
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
header("Access-Control-Allow-Headers: X-Requested-With");
//somecode
这是我第一次使用CORS,我真的不知道出了什么问题。
谢谢
答案 0 :(得分:0)
在php页面的开头添加此代码
http://domainB.com/resource.php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true ");
header("Access-Control-Allow-Methods: OPTIONS, GET, POST");
header("Access-Control-Allow-Headers: Content-Type, Depth, User-Agent, X-File- Size,
X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control");
答案 1 :(得分:0)
最后我在这篇文章中得到了答案: http://www.html5rocks.com/en/tutorials/cors/。 似乎问题出现在我的Ajax代码中,我刚刚添加了一些属性,现在它的工作正常。 这就是我的Ajax现在的样子:
$.ajax({
type: 'GET',
url: url,
cache: false,
contentType: 'text/plain',
xhrFields: {
withCredentials: false
},
}).done(function ($result) {
//somecode
});