0

我尝试使用 JsSIP,但是当我使用 RequireJS 在客户端启用 require 时,CHROME 返回:

XMLHttpRequest cannot load http://localhost/videochat/videonodejs/scripts/jssip. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.

它都在本地主机中,那么可能是什么起源问题?我的 URL 中确实有端口号,可以吗?

4

2 回答 2

2

jssip 请求在端口 80 上,应用程序在端口 3000 上。根据同源策略,它们不是同源。

于 2014-12-01T19:35:14.830 回答
0

服务器需要在Access-Control-Allow-Origin标头中指定允许的来源。通常将此值设置为'*'以便捕获所有客户端来源,或者将其设置为允许来源的白名单。这是在服务器代码中定义的,并且是处理跨域请求的任何 API 所必需的。

CORS如果添加Access-Control-Allow-Origin标头不起作用,请查看您的应用程序的配置。如果它不起作用,您最终可能需要查看“飞行前”请求。它们是发送到服务器的初始请求,以确定服务器对即将到来的请求的支持,它的 HTTP 方法是OPTIONS. 因此,如果您处理服务器代码,则需要将“OPTIONS”添加到允许的方法列表中,以便您可以处理该飞行前请求,从而通知浏览器它应该继续并将真实请求发送到服务器.....我相信您可以通过使用命令行标志(我认为是--disable-web-security)启动来禁用chrome中的这种行为。希望这能对你有所帮助。

于 2014-12-01T19:48:11.300 回答