1

我正在尝试向我的 restserver 发出 ajax 请求:

<script>
var id = "104";
var postData = {
  'id' : id
};
AJS.$.ajax({
     url: "myurl",
     crossDomain: true,
     data: postData,
     type: "DELETE",
     // dataType: "json",
     success: function(msg, textStatus, jqXHR) {
        alert( "Data Saved: " + msg);
     }
});
</script>

但我收到以下错误:XMLHttpRequest cannot load http://myurl/rest/controller/resource/id/107。Access-Control-Allow-Methods 不允许方法 DELETE。

我在我的 php 控制器顶部添加了以下内容:

header('Access-Control-Allow-Origin: *'); 
header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
header('Access-Control-Allow-Headers', 'x-requested-with');

它似乎接受的唯一方法是 get 和 post,但 delete 和 put 会产生错误。

有任何想法吗?

谢谢,詹姆斯

4

1 回答 1

0

前几天,我艰难地了解到,几乎不可能从任何浏览器执行跨域 ajax 请求。我将在服务器端处理重定向 HTTP 请求。让这个 ajax 请求转到同一 url/服务器上的脚本,并让该脚本执行 HTTP 请求并等待来自您尝试从中获取数据的其他服务器的数据。

于 2012-11-11T23:40:10.593 回答