如何使PHP代理解决CORS错误?

时间:2014-10-26 18:52:17

标签: php jquery ajax proxy cors

我正在练习AJAX和RESTful Web服务,我在控制台上遇到错误:

阻止跨源请求:同源策略不允许在...等等读取远程资源...

所以,我的代码不能在除Safari之外的任何浏览器上运行! 在Chrome,Firefor或Opera等其他浏览器上,我遇到了同样的错误。

只要我通过互联网搜索,我发现实现此目的的唯一方法是创建一个代理服务器,它将请求发送到服务器,然后将响应上的一些标头附加回客户端。

www.corsproxy.com解决方案很棒,但我只想拥有自己的代理! : - )

我的简单jQuery代码是:

            var dataURL = "http://fou.com/last.json";
            $.ajax({
                url: dataURL,
                async: true,
                type: "GET",
                dataType: "json",
                success: editData
            // editData it's a function which gonna edit the data from fou.com ..
            })

根据这个,php代码会是哪个?

1 个答案:

答案 0 :(得分:0)

您可以这样做:

JS:

var dataURL = "http://fou.com/last.json";
var proxyUrl = "http://myproxy.com/?get=";
$.ajax({
    url: proxyUrl+encodeURIComponent(dataURL),
    async: true,
    type: "GET",
    dataType: "json",
    success: editData
})

PHP部分http://myproxy.com

<?php
    $curl = curl_init();
    curl_setopt_array($curl, array(
        CURLOPT_URL => $_GET['get']
    ));
    curl_exec($curl);
?>

PHP部分非常简化,可以为您提供一个想法。