所以我在一个带有example.com(http://www.example.com/ajax/paste.php)的服务器的目录中有一个名为paste.php的php文件 php文件看起来像:
<?php
$id=($_GET['create']);
$paste=($_GET['paste']);
$toly=($_GET['toly']);
if($id=='create'){
echo "hello";}
else{
echo "world";
} ?>
在具有不同域的另一台服务器中,我有一个简单的html文件(www.example / demo / index.html) 我正在尝试对上面的php文件进行ajax调用而没有运气 我的jquery看起来像:
var url="http://www.example.com/ajax/paste.php";
s="create=create&paste=hello&toly=this";
$.ajax({
type: "GET",
xhrFields: {
withCredentials: true
},
url: url,
data: s,
success: function(msg){
alert(msg);
},error:function (jqXHR){
alert(jqXHR.status.error);
}
});
我做错了什么?
编辑:忘记xhr我只想取回我作为回复的字符串 有什么办法吗?
答案 0 :(得分:2)
从JavaScript中,您可以在文档头部内动态创建新元素。当您这样做时,浏览器可以从您指定的任何域中请求数据。如果被调用的代码包含某些函数的执行,那么该函数将能够链接到您的代码。这是一个例子:
var head = document.getElementsByTagName("head")[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
head.appendChild(script);
您还需要在脚本中定义一个函数:
function success(abc){
alert('Yey'+abc);
}
另一个域的脚本应如下所示:
success('some_data_here');
该数据也可能是JSON。当JSON与这样的函数调用结合时,它被称为JSONP。
进一步阅读:
答案 1 :(得分:1)
除非您执行Cross Origin Resource Sharing,否则无法执行跨域XHR。 same origin policy阻止了你。
答案 2 :(得分:0)
您可以使用服务器端代理或代码服务来支持JSONP。
编辑:哦,是的,请看一个评论。看看另一个帖子。