javascript - 我可以将 JavaScript 变量传递给 PHP 以用作 cURL 函数的 URL 吗?

标签 javascript php jquery curl

我有一个有效的 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/

相关文章:

javascript - 使用 EditorTemplate 时,使用 javascript 进行 Dropdownlist Change 事件

java - 检查父级是否包含hash标签-跨域

php - 没有 Javascript 的 CodeIgniter 表单中的两个不同提交按钮

php - PHP 问题中的简单对象 [新手]

javascript - 隐藏 iFrame 源

javascript - 根据浏览器调整输入/输出 div 框大小

javascript - JSON 返回多列,但所有值都作为单个字符串。如何从数组中获取匹配的键值?

html - 防止在 html5 应用程序中剪切复制粘贴

javascript - 使用 jQuery 交换选择列表中的值

javascript - 外部 JavaScript 调用。标题还是页面底部?