我有一个有效的 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 时,效果很好。然而,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>
最佳答案
我想可能是因为这个:
在你的JS代码中,你需要向服务器传递一个参数,例如:
$.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:
$url = $_POST['url'];
那么我想这样就可以了。
关于javascript - 我可以将 JavaScript 变量传递给 PHP 以用作 cURL 函数的 URL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31741706/