3

私はGoogleの検索APIをクエリするためにlaravelを使用しています。これを行うコードは次のとおりです。

Route::get('google/(:any)', function($query)
{
    $uri = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=".$query;
    $response = Httpful::get($uri)->send();
    $r = json_decode($response); 
    return Response::json($r);
});

これはhttp://example.com/w/google/queryhereからアクセスできます

また、JavaScriptで複数のリクエストを作成し、jsonを解析しようとしています。

$.when( $.ajax(google), $.ajax(bing), $.ajax(yahoo)).then(function(resp1, resp2, resp3)
{ 
    var obj = jQuery.parseJSON(resp1);
});

ただし、parseJSONメソッドを使用すると、予期しない構文トークンが取得されます。どこが間違っていたのかわかりません。

4

1 に答える 1

2

まず、$.ajaxコンテンツタイプを検出するときに、JSON応答をそれ自体で解析します。手動で行う必要はありません。

第二に、$.when複数の引数で解決する約束に適用されるのは少しあいまいです。通常、延期されたajaxのコールバックには3つの引数がありますdata, textStatus, jqXHR。それでも、結合されたpromiseは、それらを配列として解決します(延期ごとに1つの配列)。

だからそれをに変更します

$.when( $.ajax(google), $.ajax(bing), $.ajax(yahoo)).then(function(resp1, resp2, resp3){ 
    var obj = resp1[0];
});
于 2013-03-10T15:57:19.247 に答える