需要cURL的帮助。需要替换ajax调用

时间:2012-10-08 15:40:12

标签: php ajax curl

我的客户希望我实现一个页面。在这个页面上,我使用AJAX进行了API调用(如代码所示)。

jQuery.ajax({
    url: endpoint,
    type: "POST",
    cache:false,
    data: {
            url:"link-rest/sweepstakes/claim",
            userId:193298,
            prizeRank:2,
            sweepStakeId:186
          },
    dataType: "json",
    headers: {
                Authorization:token
             },
    success: function(json){
            callback(json);
            },
    error: function(xhr, status, error){
            callback(errorHandle(2));
            }
});

但现在他想将这个页面用于搜索引擎优化。为此我必须在php中进行API调用。我之前从未使用过cURL。 stackoverflow上的示例似乎对我不起作用。我安装了Wamp Server并且已激活php_curl扩展。 wamp的所有服务也已重新启动。这是我试图实现的。

    $json_url = 'link-rest/sweepstakes/claim&userId=193298&prizeRank=2&sweepStakeId=186&Authorization=ams0TGpFek5EazBNekExTmprd01EYz1NVGt6TQ';

    $ch = curl_init($json_url);

    $options = array(
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => array('Content-type: application/json'),
    );

    curl_setopt_array($ch, $options);

    $result = curl_exec($ch);
    var_dump(json_decode($result));

但是我的屏幕上打印的所有内容都是“空”。谁能告诉我我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

代码的基本问题是您使用的是相对URI而不是绝对URI。

您似乎也在尝试提供以JSON编码的请求,但Ajax似乎使用标准表单编码,并且只在响应中使用JSON

更基本的问题是您首先使用cURL。 link-rest/sweepstakes/claim可能是通过PHP处理的,因此您应该重新调整要调用的库,然后从您正在编写的函数中调用该库。 (将处理Ajax请求的页面转换为围绕它的简单视图)。