【问题标题】:How to make a PHP proxy to solve CORS error?如何制作 PHP 代理来解决 CORS 错误?
【发布时间】:2014-10-27 03:12:09
【问题描述】:

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

跨域请求被阻止:同源策略不允许读取远程资源 ... blah blah blah...

所以,我的代码不能在除 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代码会按照这个来吗?

【问题讨论】:

  • 为什么不使用 Padded JSON?
  • @void 服务器不支持 Jsonp :/

标签: php jquery ajax proxy cors


【解决方案1】:

你可以这样做:

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
})

http://myproxy.com 的 PHP 部分:

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

PHP 部分非常简化,给你一个想法。

【讨论】:

  • 发帖怎么样?该怎么做?
猜你喜欢
  • 2021-11-17
  • 2021-05-28
  • 2021-09-12
  • 2020-12-01
  • 2020-02-07
  • 2014-12-28
  • 2023-01-06
  • 1970-01-01
  • 2021-09-15
相关资源
最近更新 更多