0

我的客户希望我实现一个页面。在此页面上,我使用 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));
            }
});

但现在他也想将此页面用于 SEO。为此,我必须在 php.ini 中进行 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));

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

4

1 回答 1

0

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

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

一个更根本的问题是您首先使用的是 cURL。link-rest/sweepstakes/claim大概是通过 PHP 处理的,因此您应该将要调用的位重构到库中,然后从您正在编写的函数中调用该库。(同时将处理 Ajax 请求的页面变成围绕它的简单视图)。

于 2012-10-08T15:43:18.667 回答