0

我正在做一个跨域ajax调用。这是在 mysql 数据库中插入数据。

var urlsearch = "http://192.168.10.113:8080/collective-intellegence/StoreClicks?userid=" + userId + "&query=" + query;
$.ajax({
    type: 'POST',
    url: urlsearch,
    dataType: 'json',
    success: function (data) {
    }
});

当我运行上面的代码时,它会显示一条错误消息

XMLHttpRequest 无法加载 http://192.168.10.113:8080/collective-intellegence/StoreClicks?userid=1&query=python&url=http://www.ourgoalplan.com/KLMS/TipView.aspx?id=1785。Origin http://192.168.9.185 是 Access-Control-Allow-Origin 不允许的。

但数据已成功在除 IE 之外的所有浏览器中插入数据库。

请帮忙解决问题

提前致谢。

4

4 回答 4

1

正如@davidrac 建议的那样,您可以使用 JSONP,如下所示:

jQuery.ajax({
    type: 'POST',
    url: urlsearch,
    dataType: 'jsonp',
    jsonp: 'json.wrf'
    success: function (data) {   }
});

您必须json.wrf使用回调函数的名称将参数添加到查询字符串中,才能从 Solr 获得正确填充的响应。

于 2012-11-09T12:00:13.850 回答
0

您可能应该使用 JSONP 或其他一些解决方法。

有关问题的解释,请参见此处此处。

于 2012-11-09T07:31:56.433 回答
0

当您从服务器输出响应时,请添加以下标头:

Access-Control-Allow-Origin: *

这将使 IE 中的 XHR 允许。如需更多信息,请查看HTTP 访问控制 (CORS)

如果是 PHP,你可以这样做:

<?php
    header("Access-Control-Allow-Origin: *");
?>
于 2012-11-09T07:32:57.007 回答
0

只要 IE 为 8+ 并且服务器响应包含Access-Control-Allow-Origin: [Allowed origins]HTTP 标头,此代码就应该可以工作。

If (XDomainRequet) {
   //just an example
  var xdr = new XDomainRequest();
  xdr.open("post", url);
  xdr.send();
}
else
{
  $.ajax({
    type: 'POST',
    url: urlsearch,
    dataType: 'json',
    success: function (data) {
    }
});
}
于 2012-11-09T07:45:53.093 回答