我有一个有效的cURL功能,允许我绕过跨域问题,这是下面的代码
<?php
$url = "http://explorerapi.barratthomes.co.uk/v2.0/development/getbyitemkey?ItemKey=H618701&Auth.Utc=2015-07-31T08:30:26.761Z&Auth.RequestId=a22a17d8-8d62-4954-8a9c-79e5c244c308&Auth.DeviceId=23a5bb10-c646-47c4-8fda-1b6f1d528de3&Auth.Hash=052DAA8E425F143D4B5C55A1EAC87C5D&BrandCode=BAR&ApplicationId=ApplicationId&ApplicationVersion=1.2.3.4&LanguageCode=en-gb&IsPublished=true&MarketingSuiteDevelopmentId=MarketingSuiteDevelopmentId&UserLocation=UserLocation&Os=Android&ScreenResolution=1024x768&Hierarchical=True";
$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, $url);
curl_setopt($cu, CURLOPT_HEADER, false);
curl_setopt($cu, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cu, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($cu, CURLOPT_CONNECTTIMEOUT, 10);
$result = curl_exec($cu);
if(curl_errno($cu))
{
echo "<h2>Unable to connect to site</h2>";
}
curl_close($cu);
echo $result;
?>
当我在此处设置网址时,此工作正常。但是url是动态的,每次都不同,因此我有一个JavaScript文件,用于创建URL并将其放入变量。
我无法将JavaScript变量导入PHP,因此我可以使用该URL。我一直在尝试$_GET
和$_POST
,但没有运气。
以下是我的Java参考资料,地址变量来自我创建URL的JavaScript文件。
<!DOCTYPE>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="js/auth.js" type="text/javascript"></script>
<meta charset="UTF-8">
</head>
<body>
<script type='text/javascript'>
var url = address;
$(document).ready(function() {
window.location.href = "test.php?url_=" + url;
$.ajax({
url: "http://127.0.0.1:4001/Barratt/test.php",
//dataType: 'json',
//method: 'GET',
//contentType: 'application/json'
})
.done(function(data) {
console.log(data);
//var response = $.parseJSON(data.contents);
$('#value').html(data);
})
.fail(function() {
alert('failed to fetch data')
});
});
</script>
<div style="width: 100%; height: 100%; border: 2px solid red;" id="value">
</div>
</body>
</html>
答案 0 :(得分:1)
我想可能是因为这个:
$.ajax({
url: "http://127.0.0.1:4001/Barratt/test.php",
dataType: 'json',
data:{url:'http://your.url.here'},
//better to use post in case ur url got special characters
method: 'POST',
});
然后在你的PHP代码中,你将能够使用$ _POST []获取网址:
$url = $_POST['url'];
然后我认为那样做。
答案 1 :(得分:0)
我不确定我是否正确,但我没有看到你的php脚本中使用的超级全局符号$ _GET或$ _POST。
您是否知道如果将一个值发布到php文件,它将最终出现在超级全局数组$ _POST中。 (和$ _GET相同)
所以,如果你打电话给my.php?value = test,它将会结束:
$get_value = strip_tags($_GET['value']); // The strip tags is just some safty thing
if (isset($get_Value))
// do things with your get_value here