跨源请求已阻止onclick但不在控制台上

时间:2014-05-30 16:54:18

标签: javascript cors same-origin-policy

我正在开发一个使用OpenStreetMap对内容进行地理编码的应用。如果我在控制台中运行我的app.geocode函数,它可以完美地运行。 如果我在单击表单上的按钮时触发相同的功能,我会在控制台中收到以下通知:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://nominatim.openstreetmap.org/search?q=Toronto&format=json. This can be fixed by moving the resource to the same domain or enabling CORS.

Nominatim正在返回相应的access-control-allow-origin: '*'标题...

有人可以解释为什么这些似乎有不同的处理方式吗? 考虑到服务器已经发送了正确的CORS头,我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

浏览器" chrome"组件(添加,插件,开发人员控制台或浏览器中存在的任何其他内容并存在于您的计算机上)不受同一原始策略的约束。从远程服务器加载的Web文档和脚本受其约束。插件不受页面中脚本的许多限制,这意味着您需要对添加到浏览器的插件具有高度信任。

答案 1 :(得分:0)

我在Firefox和Chrome浏览器中都遇到了同样的问题。 解决方案是取代'形式'标记为'字段集'标签。 似乎点击表单触发了一些HTTP请求 这产生了一个跨源块......