我正在进行跨域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。 Access-Control-Allow-Origin不允许使用原点http://192.168.9.185。
但是数据在IE以外的所有浏览器中成功插入数据库。
请帮助解决问题
提前致谢。
答案 0 :(得分:1)
正如@davidrac建议的那样,你可以使用如下的JSONP:
jQuery.ajax({
type: 'POST',
url: urlsearch,
dataType: 'jsonp',
jsonp: 'json.wrf'
success: function (data) { }
});
您必须将json.wrf
参数添加到查询字符串中,并使用回调函数的名称,以便从Solr获得正确的填充响应。
答案 1 :(得分:0)
答案 2 :(得分:0)
从服务器输出响应时,请添加以下标题:
Access-Control-Allow-Origin: *
这将使IE中的XHR允许。有关详细信息,请查看HTTP access control (CORS)。
对于PHP,您可以这样做:
<?php
header("Access-Control-Allow-Origin: *");
?>
答案 3 :(得分: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) {
}
});
}