gpt4 book ai didi

javascript - 使用 JSONP 获取 XML

转载 作者:行者123 更新时间:2023-11-30 06:43:15 25 4
gpt4 key购买 nike

这两天,我逛了很多论坛网站,但我没有找到我的问题的确切解决方案。我有跨站点脚本问题。我用 javascript、html 和 css 编写的应用程序的 Web 服务出现如下错误;

“XMLHttpRequest 无法加载...bla bla bla..Origin http://localhost:8088 不被 Access-Control-Allow-Origin 响应头所允许。” 我写的代码是;

$.ajax({

async: false,
type: "GET",
url: "http://www.yem...om/Cata.../M...ogin2?username=blabla&password=blabla123",
dataType: "xml",
success: function(xml) {
alert("CONTROL???");
$(xml).find('Login').each(function(){
var logResult = $(this).find('Result').text();
alert(logResult);
});


}
})

;

我知道我必须使用 JSONP。但是,当我编写 dataType: "*jsonp xml*" 或 dataType: "*jsonp text xml*" 时,我收到一条错误消息,例如 "SyntaxError:解析错误”!

此外,我尝试了 CORS 过滤器,但它需要 web.xml 但我没有。当我创建并尝试使用它时,我失败了!

此外,我尝试了 James Padolsey 的 jQuery 跨域请求 http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/它有效,但我还没有解析我收到的数据。此插件使用 Yahoo Query Language,因此,控制数据不同且不容易。

还有什么方法可以解决我的问题吗?请帮助我!

最良好的祝愿。

最佳答案

跨域限制的存在是有原因的。它保护互联网用户。它的存在是为了防止程序员和黑客做很多有害的事情。

您可以采取一些措施来解决这个问题。其中之一是您可以执行 CORS 过滤器以允许来自跨域的请求。你说你没有 web.xml 文件。我不确定您的项目是什么样子,但如果您使用的是 Web 服务,那么某处应该有某种 web.xml 文件。如果你不能设置它,那你就不走运了(没有使用像 YQL 或类似的东西这样的好代理)。像 YQL 这样的东西,他们已经将他们的 CORS 过滤器设置为允许来自所有域的请求。调用 YQL 是一个 ajax 调用,就像您尝试执行的 ajax 调用一样。最大的区别在于 YQL 服务器具有 CORS 过滤器设置,浏览器会检测到它并允许跨域请求继续进行。

一旦 CORS 过滤器就位,浏览器将允许您从不同的域访问该域。与其寻找破解方法,不如将项目设置为允许跨源请求。

如果您不控制您尝试 ping 的网络服务,那么您就不走运了。只有 web 服务的所有者才能访问 web.xml。

关于javascript - 使用 JSONP 获取 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9178569/

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