【问题标题】:Need assistance with cURL. Need to replace ajax call在 cURL 方面需要帮助。需要替换ajax调用
【发布时间】:2012-10-08 15:40:12
【问题描述】:

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

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

【问题讨论】:

  • cURL 不适用于相对 URL。您应该使用以 http:// 开头的完全限定 URL。
  • 感谢您和@Quentin。问题在于我没有提供绝对 URL。一旦我得到正确的 URL,它就可以正常工作。再次感谢。 :)

标签: php ajax curl


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    • 2011-01-27
    相关资源
    最近更新 更多