如题
PHP 使用 curl 进行其他应用的接口调用,属于跨域请求么?
在网上找了一篇文章,讲到了对跨域的理解:由于浏览器同源策略,凡是发送请求url的协议、域名、端口三者之间任意一与当前页面地址不同即为跨域。
并配有实例的图片:
而cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。php支持curl库,主要用它来模拟一些http请求,比如表单提交,文件上传等。而这些操作往往都是通过php命令行下来执行的,所以说不会受到限制的。
希望能对你有所帮助
2 回答3.1k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答1.3k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
3 回答1.2k 阅读
2 回答1.1k 阅读
同源策略防止跨域是浏览器中的安全机制.而PHP的cURL可以看做一个命令行下的浏览器(客户端),不受任何限制,就像你用file_get_contents下载互联网上的东西一样随心所欲:
file_put_contents('/tmp/logo.gif',file_get_contents('http://www.baidu.com/img/bdlogo.gif'));
比如你把PHP打包到Android应用里,然后调用PHP启动一个HTTP服务器,然后开一个WebView访问这个本地PHP服务(用UserAgent来识别应用WebView),然后通过PHP cURL就能获取服务器端的数据并返回给WebView,这样就跨过了WebView的同源限制,轻松访问网络.