2016-05-01 18 views
0

Android(Chrome v 50)を除くすべてのプラットフォームで動作するjQuery AJAXリクエストが多数あるWebアプリケーションがあります。私はここでAndroid/Chrome jQuery AJAXリクエストがサーバーに到達する前にparsererrorで失敗する

jQueryの2.1.4を使用していることは、コードです:私はcreateRequestをトリガーすると

var createRequest = $.ajax({ 
    type: 'POST', 
    url: '/api/item/?', 
    data: { 
     u_id: uid, 
     title: title, 
     text: text, 
    } 
}); 

createRequest.done(function(response){ 
    console.log('DONE'); 
    console.log(response); 
}); 

createRequest.fail(function(response){ 
    console.log('FAIL'); 
    console.log(response); 

}); 

が、私はネットワークコンソールで200応答を得るが、要求は失敗し、実際にになることはありませんサーバーはまったくありません。 .failに返される応答は、statusText "parsererror"を持つxhrオブジェクトです。コンソールで

:JSONはhttpで完全なURLを追加して、送信する前にデータを文字列化、 'テキスト': 'JSON'、データ型://どんなに私がデータ型を含む(しようとするもの

FAIL 
Object {readyState: 4, responseText: "", status: 200, statusText: "parsererror"} 

相対URLの代わりに)、私はparsererrorを越えて実際にサーバーにデータを送る$ .ajax呼び出しを得ることができません。

これは、すべてのデスクトップブラウザとiOS Safariでうまく機能します。

アイデア?

+0

私は別のエンドポイントにシンプル$アヤックスGETリクエストを実行しようとしても同じエラーが出ます。リクエストは、サーバにぶつかることなく、解析エラーで失敗します。 – byron

答えて

0

[OK]を、私はそれを考え出しました。問題は?パラメータのないURLの最後にリクエストは

http://www.example.com/api/item/?&uid=1234&title=Test&text=test 

ように構築されていたそれは、/でしたか?最初のURLの定義にパラメータを追加する

問題だった&は、問題が修正されています。

var createRequest = $.ajax({ 
    type: 'POST', 
    url: '/api/item?u_id=' + uid, 
    data: { 
     title: title, 
     text: text 
    } 
}); 
+0

新しいトークンが必要かどうかお知らせください。 – Omar

0

テキスト:テキストの後の最後のカンマは、それをスローします。次のようになります。

var createRequest = $.ajax({ 
 
type: 'POST', 
 
url: '/api/item/?', 
 
data: { 
 
    u_id: uid, 
 
    title: title, 
 
    text: text 
 
} 
 
});

+0

アレックスのおかげで、ありがとう。私は末尾のカンマを削除しようとしたが、私は同じ結果を得る。 parsererrorで失敗します。 – byron

+0

実際、データ属性を完全に削除しても、要求は決してサーバーに届きません。すぐに失敗します。 – byron

関連する問題