我正在尝试通过php代理连接到一个站点(这个:https://raw.github.com/cowboy/php-simple-proxy/master/ba-simple-proxy.php),这是一个JavaScript函数,用于响应:
编辑:代码现在看起来像这样。还是没有雪茄。
function exista(word) {
alert(word);
var proxy = 'ba-simple-proxy.php?url=';
var uri = "http://api.wordreference.com/0.8/ff175/json/roen/" + word;
uri = encodeURIComponent(uri);
alert(proxy + uri);
var cuvantulexista = 1;
jQuery.ajax({
"async": false,
"url": proxy + uri,
"dataType": 'json',
"method": "GET",
"success": function (data) {
alert("HERE!");
if (data.Error || data.Response)
cuvantulexista = 0;
}
});
return cuvantulexista;
}
php文件与包含上述函数的js文件位于同一文件夹中,并位于包含html文件的公共文件夹中。
问题是我没有得到任何回应,我无法说出原因。
我还在html中加入了php,如:
<?php
include("js/ba-simple-proxy.php");
?>
我很抱歉我的极端高潮,但这是我第一次使用php和跨域通信。谢谢。 :)
编辑:如果有帮助,页面不会托管在域中。
Edit2:所以,我在没有--disable-web-security的情况下打开谷歌浏览器,我再次收到此错误:
XMLHttpRequest cannot load file:///home/bogdan/Scrabble-Online/public/ba-simple-proxy.php?url=http%3A%2F%2Fapi.wordreference.com%2F0.8%2Fff175%2Fjson%2Froen%2FRHE. Origin null is not allowed by Access-Control-Allow-Origin.
然而,如果我在localhost上启动它,它不会显示该消息。它只是没有连接。我现在非常困惑。
答案 0 :(得分:0)
要发出横向请求,您的目标网页需要允许您访问:
header('Access-Control-Allow-Origin: *');
您可以在代理脚本的顶部添加此内容。最好用您的域名替换*
。
但file://
个网址无法获得授权。所以你需要有一个真正的域名。