gpt4 book ai didi

ajax - 使用SproutCore的跨域服务请求

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

我一直试图解决这个问题,但没有成功。

我的域中有一个webapp,说www.myDomain.com。我需要调用另一个域上存在的服务,例如www.anotherDomain.com/service.do?
我正在使用SproutCore的SC.Request.getUrl(www.anotherDomain.com/service.do?)调用该服务。

我收到一条错误消息,指出access-control-allow-origin不允许使用Origin www.myDomain.com

在开发阶段并使用sc-server时,使用代理解决了该问题。现在,我已经将应用程序部署到了实际的服务器上,我用实际的域名替换了设置代理服务器的所有行。我已经开始再次收到该错误。

问题是我无法对其他域上的服务器进行任何更改。我遇到的所有帖子都指出,另一个域上的其他服务器应该提供access-control-allow-origin header ,并且应该支持OPTIONS动词。

我的问题是,我可以使用SproutCore的SC.Request.getUrl()方法连接到该服务吗?

另外,我阅读过的其他文章提到,不应对简单的GET请求进行预检。为什么我的请求以OPTION而不是GET的形式发送?

在此先感谢一吨! :D

最佳答案

这不是Sproutcore的问题。这是一个JavaScript同源政策问题。

如果您无法修改生产服务器,则别无选择,只能开发自己的代理服务器,并让代理访问真正的服务。

这有效地替代了生产环境中的sc服务器。

该服务器要做的就是接收传入的请求,并将其传递给www.anotherDomain.com/?service.do

您需要确保传递了所有参数,Cookie,标题,http动词等。

这远非理想,因为现在错误可能会在更多地方发生。真实服务失败了吗?代理失败了吗? ETC。

如果您可以修改其他域,则可以

1)在此处部署您的SC应用程序。
2)放入CORS header ,以便您可以进行跨域请求

关于ajax - 使用SproutCore的跨域服务请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8335420/

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