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で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」です。誰かが私がここで間違っていることを教えてもらえますか?

4

1 に答える 1

0

コードの基本的な問題は、絶対URIではなく相対URIを使用していることです。

また、JSONでエンコードされたリクエストを提供しようとしているようですが、Ajaxは標準形式のエンコードを使用しているようで、応答にJSONのみを期待しています

より根本的な問題は、そもそもcURLを使用していることです。link-rest/sweepstakes/claimおそらくPHPを介して処理されるため、呼び出したいビットをライブラリにリファクタリングしてから、作成している関数からそのライブラリを呼び出す必要があります。(Ajaxリクエストを処理するページをその周りの単純なビューに変えている間)。

于 2012-10-08T15:43:18.667 に答える