【发布时间】:2016-07-12 10:47:26
【问题描述】:
我需要调用 php 并从另一台服务器获取数据,我正在使用 proxy.php 从 ajax 调用。
proxy.php
<?
header('Content-type: application/json');
$url=$_GET['url'];
$json=file_get_contents($url);
echo $json;
?>
我的代码看起来
function scanFunction(){
var url="http://address/scan.php?user=user1&video=video1";
console.log(url);
url = 'proxy.php?url='+url;
$.ajax({
url: url,
type: "POST",
data: {
},
dataType: "JSON",
success: function (jsonStr) {
if(jsonStr.length>0){
var obj = jsonStr;
console.log(obj);
}
else{
console.log(" error...");
}
}
});
}
当我使用传递给 proxy.php 的 url 的一个参数时,这段代码可以正常工作,而第二个参数丢失了
那是
echo $url; 在 proxy.php 内打印
http://address/scan.php?user=user1
事件我传递了两个参数,例如,
proxy.php?url="http://address/scan.php?user=user1&video=video1"
这是 proxy.php 中缺少的第二个参数视频,所以我没有得到预期的结果。
【问题讨论】:
-
您认为
.ajax调用的data:属性可能用于什么 -
快速解释:一旦你在地址扫描 url 中有第一个
&,它将被视为get的第二个参数。您必须找到一种对其进行编码的方法,然后将其设置为'proxy.php?url='+encoded_url