gpt4 book ai didi

ajax - 跨域 javascript ajax 请求 - 状态 200 OK 但没有响应

转载 作者:行者123 更新时间:2023-12-03 07:07:34 25 4
gpt4 key购买 nike

这是我的情况:我正在创建一个小部件,站点管理员可以将其嵌入到他们的站点中,并将数据存储在我的服务器中。所以脚本基本上必须向我的服务器中的 php 文件发出 ajax 请求来更新数据库。正确的?正确的 :)当我在本地服务器中运行ajax请求时,它工作得很好,但当php文件位于我的在线时,它无法工作 服务器。这是我使用的代码:

var url = "http://www.mydomain.net/ajax_php.php";
var params = "com=ins&id=1&mail=mymail@site.net";
http.async = true;
http.open("POST", url, true);

http.onreadystatechange = function() {

if(http.readyState == 4 && http.status == 200) {

//do my things here
alert( http.responseText );

}
}
http.send(params);

在 Firebug 中显示:http://www.mydomain.net/ajax_php.php 200 正常 X 600 毫秒。

当我检查 ajax responnseText 时,我总是得到 Status:0

现在我的问题是:“我可以默认执行跨域ajax请求吗?这可能是跨域ajax问题吗?因为当请求的文件驻留在我的本地服务器中时它可以工作,但当请求的文件驻留在我的本地服务器中时它不起作用文件位于另一台服务器中,我认为对另一台远程服务器的 ajax 请求可能会被拒绝?你能帮我解决这个问题吗?谢谢..

最佳答案

不直接允许跨域请求。然而,有一种常用的技术称为 JSONP这将允许您通过使用脚本标签来避免此限制。基本上,您创建一个具有已知名称的回调函数:

function receiveData(data) {
// ...
}

然后您的服务器将 JSON 数据包装在函数调用中,如下所示:

receiveData({"the": "data"});

然后,您可以通过向页面添加 script 标记来“调用”跨域服务器。 jQuery 优雅地将所有这些都封装在其 ajax 函数中。

我有时不得不使用的另一种技术是通过 iframe 进行跨文档通信。您可以通过postMessage以受限的方式让一个窗口与另一个窗口通信,甚至跨域。 。请注意,只有最新的浏览器才有此功能,因此如果不借助黑客手段,该选项并非在所有情况下都可行。

关于ajax - 跨域 javascript ajax 请求 - 状态 200 OK 但没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7033976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com