0

phpコード

<?php
$data = trim(api_get('threads',array(),'JSON'));
echo $_GET['jsonp_callback'] . '(' . $data . ');';
?>

jsコード

<script>
$.ajax({
              url: "https://abc.secure.tttt.com/",
              data:{},
              dataType: 'jsonp',
              cache: false,
              crossDomain: true,
              jsonp : "jsonp_callback",
              success: function(params){
                    console.log('showInbox');
                    //console.log(JSON.parse(params));
                    showInbox(params);
              },
              error: function (xhr, textStatus, thrownError) {
                console.log('Inside showInbox ajax failure');
                console.log(xhr.status);
                console.log(textStatus);
                console.log(JSON.stringify(xhr));
                console.log(thrownError);
              }


});

API が json データを提供している場合、これは正常に機能しており、エラーがある場合は、構文エラーが表示されています。

Timestamp: 5/9/2013 4:28:24 PM
Error: SyntaxError: syntax error
Source File: https://abc.secure.tttt.com/?jsonp_callback=jsonp1368095332316&_=1368097103961
Line: 1
Source Code:
<!DOCTYPE html>
4

1 に答える 1

0

timeout プロパティを使用して、エラー時に実行されるエラー関数を取得します。

$.ajax({
              timeout : 2000,
              url: "https://abc.secure.tttt.com/",
              data:{},
              dataType: 'jsonp',
              cache: false,
              crossDomain: true,
              jsonp : "jsonp_callback",
              success: function(params){
                    console.log('showInbox');
                    //console.log(JSON.parse(params));
                    showInbox(params);
              },
              error: function (xhr, textStatus, thrownError) {
                console.log('Inside showInbox ajax failure');
                console.log(xhr.status);
                console.log(textStatus);
                console.log(JSON.stringify(xhr));
                console.log(thrownError);
              }


});

ほとんどのブラウザーでは、タイムアウト以外に、JSONP 要求が成功したかどうかを知る方法はありません。もちろん、妥当な値に設定します。サーバーがこの時間内にファイルを返さないかどうかを推測するために 2 秒を使用します。何か問題があります。

于 2013-05-09T11:12:10.830 に答える