gpt4 book ai didi

jquery - 无法在 $.ajax 请求上设置 HTTP 主机 header

转载 作者:行者123 更新时间:2023-12-01 03:01:23 39 4
gpt4 key购买 nike

这个主题之前已经以不同的方式讨论过,但我还没有找到适合我的解决方案。我正在使用 jquery 1.7.1。

我有一个 REST 风格的 Web 服务,可以返回 JSON 和 XML,但对于这个项目,我需要使用 XML 端点。为了绕过跨域限制,我使用 Perl 的 HTTP::Proxy 创建了一个透明代理。该代理工作起来非常轻松,因为我可以从任何地方与 HTTP GET 客户端进行通信。

由于它是透明代理,因此它依赖于客户端请求中设置的 Host header 。我的代码如下所示:

  $.ajax({
type: "GET",
crossDomain: true, // not needed I think
error: function() { alert('Failed ..'); },
url: "http://www.skiforeningen.no:8080/<remote REST URL>",
dataType: "xml",
headers: {'Host': 'remote REST host'},
success: parseXml,
});

Chrome 非常明确地表示

Refused to set unsafe header "Host"

XMLHttpRequest cannot load http://www.skiforeningen.no:8080/sted/Norge/Oslo/Oslo/Skansebakken/varsel.xml. Origin http://www.skiforeningen.no is not allowed by Access-Control-Allow-Origin

但是代理和带有 jquery 的 HTML 页面都位于主机 www.skiforeningen.no 上。

由于错误事件处理程序被触发,FF 也拒绝设置主机 header (显然)。

谢谢

最佳答案

您无法在不同的主机上执行 XHR 请求,就像错误消息告诉您的那样。不同的端口意味着不同的主机。

参见:Can I use XMLHttpRequest on a different port from a script file loaded from that port?

关于jquery - 无法在 $.ajax 请求上设置 HTTP 主机 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8865896/

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