根据CORS,通过XMLHttpRequest,curl和浏览器URL获取请求有什么区别?

时间:2014-07-26 01:04:00

标签: javascript curl xmlhttprequest

我试图通过阅读https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS来绕过CORS(跨源资源共享)。在这里,我注意到该文件指出:

  

出于众所周知的安全原因,从脚本中发起的跨站点HTTP请求受到众所周知的限制。例如,使用XMLHttpRequest对象发出的HTTP请求受同源策略的约束。

这对我来说很有意义,因为我之前遇到过以下错误:

  

XMLHttpRequest无法加载http://localhost:7000。没有   '访问控制允许来源'标题出现在请求的上   资源。因此不允许来源http://localhost:9000   访问。

但是,为什么curl http://localhost:7000会正确返回页面上的JSON?只是curl命令不是来自脚本的事实吗?此外,浏览器如何识别请求来自脚本?如果这与浏览器显着不同,我很想知道Chrome和Firefox如何检测到这一点。

1 个答案:

答案 0 :(得分:0)

在我的想法中  XMLHttpRequest是javascript调用服务器,用于获取数据和noad重新加载页面。首先没有页面加载没有XMLHttpRequest。  Curl是php服务器函数从服务器获取数据并返回到php代码,curl是服务器代码的一部分。