当前位置: 首页 > 面试题库 >

允许在Safari和Chrome中进行跨域请求?服务器响应与命令行参数

萧明贤
2023-03-14
问题内容

我正在尝试在Windows上使用Safari进行跨域请求。我的Safari版本是5.1.2。

这是一个经典的问题。我在很多地方都读到Chrome和Safari允许跨域请求,只要Server用响应中的followin标头响应

Access-Control-Allow-Origin: *

但是,他们都没有回答我的问题。

即使我从服务器发送回必要的标头,Chrome和Safari在执行跨域AJAX请求时仍遇到问题。

我终于用“ –disable-web-security”运行了Chrome。然后它起作用了。

我的问题:

1)我如何使用Safari?我是否使用类似的命令行参数?

2)更重要的是,有人可以告诉我默认情况下Chrome和Safari是否允许跨域功能,只要服务器响应标头即可,还是我必须确保

a)服务器以标头响应

b)以适当的参数启动浏览器。


问题答案:

我发现了问题。阅读有关CORS的更多信息有助于html5rocks.com/en/tutorials/cors。我意识到我的请求正在触发预检请求(OPTIONS),并且服务器未设置为正确处理这些请求。引起预检请求的原因是因为我使用的是JQuery,并且正在向请求添加自定义标头。我修改了代码以防止添加此额外的标头,并且我的请求不再需要预检请求。现在,我不必禁用Web安全,它可以正常工作。



 类似资料:
  • 问题内容: 我有从本地主机运行的webapp(由于调试),它发出了跨域AJAX请求。我可以轻松地为Chrome设置标志“ –disable-web- security”,并且webapp可以在Chrome中按预期工作。但是我也需要在Windows上的Safari中执行此操作。是否有一些类似的标志,或者可以在“首选项”中的某个位置进行设置? 感谢帮助。 问题答案: 解决方案是在服务器上设置标头。 在

  • 问题内容: 在我的项目中,我需要允许其他人向我的脚本发送ajax请求。因此,外部请求可能来自其他网站和域,也可能来自浏览器扩展。 我在脚本顶部仅添加了以下两行,以使它们能够做到: 现在我的问题是:这里是否遗漏了任何安全方面的考虑?这个简单的解决方案会带来严重的问题吗? 如果是这样,什么是更好的解决方案? 感谢您的回复。 问题答案: 如上所述,任何人都可以随时向您的页面发送请求:因此,您需要考虑的主

  • 在我的项目中,我需要允许其他人向我的脚本发送ajax请求。因此,外部请求可能来自其他网站和域,也可能来自浏览器扩展<我只是在我的脚本顶部添加了这两行,让他们完成这项任务: 现在我的问题是:这里有我错过的任何安全考虑吗?这个简单的解决方案会产生严重的问题吗? 如果是,更好的解决方案是什么? 感谢您的回复。

  • 我试图从我的新Angular应用程序中调用REST web服务。当发出请求时,我会得到以下错误: XMLHttpRequest无法加载http://localhost:8080/WebService。请求的资源上没有“访问-控制-允许-来源”标头。因此,不允许访问源“http://localhost”。 我发现这是因为浏览器不允许这样的操作。 编辑我也试着把它添加到我的angular应用程序中:

  • 我已经在nodejs中创建了一个本地REST API服务器,它正在从本地MongoDB数据库获取数据。我还创建了一个基本的网页,它从本地服务器请求这些数据。现在,当我试图从网页获取数据时,它会给我以下错误: 我在stackoverflow上搜索了一下,找到了this和this解决方案。我已经在我的主文件中添加了建议的标题。但它仍然给出了同样的错误。 下面是我的servers文件,我在其中添加了这些

  • 问题内容: Firefox和Internet Explorer都具有用户可以启用禁止的跨域调用的设置。 Safari和/或Chrome中是否有类似的设置或选项? 问题答案: 不确定野生动物园,但Chrome为此提供了命令行开关: 您可以在此处查看chrome命令行选项的完整列表(截至发布时!)。