2012-03-24 21 views
0

私はajax経由で投稿しているときに、余分な文字が投稿されていることがあります。アヤックスヨーヨーのPHPの$ _POSTは私が取得し終わるのにテキストが渡された場合:jQueryはajaxで投稿するときにエラーテキストを投稿します。

これは時間ポストの

99%が細かいものの渡す私のmessagejQuery127638276487364873268_374632874687326487です...私はどのようにわかりませんよこのエラーをキャプチャして取り除くのは、たまにしか起こらないためです。

// this is the ajax that we need to post the footprint to the wall. 
$('#submitbutton').click(function() { 
    var footPrint = $('#footPrint').val(); 
      var goUserId = '1'; 
    $.ajax({ 
     type: 'POST', 
     url: '/scripts/ajax-ProfileObjects.php', 
     data: 'do=leave_footprint&footPrint=' + footPrint + '&ref=' + goUserId + '&json=1', 
     dataType: 'json', 
     success: function(data){ 

      var textError = data.error; 
      var textAction = data.action; 
      var textList = data.list; 

      if (textError == 'post_twice' || textError =='footprint_empty' || textError == 'login_req') { 
      // display the error. 

      } else { 
      // lets fade out the item and update the page. 

      } 

    }); 

return false; }); 
+2

答えを得るには、コードまたは例を掲載する必要があります。 – j08691

答えて

0

無効なデータがクエリ文字列に渡されたためにエラーが発生していることが判明しました。

ライン:

data: 'do=leave_footprint&footPrint=' + footPrint + '&ref=' + goUserId + '&json=1', 

私は場合は、フットプリントの変数は常にスクリプトを壊すことに気づいた '??'を超えてた。質問をするときには、いくつかのメンバーが '??'ときに、単一の '?'

encodeURIComponent()にfootPrint varをラップすることで、URL文字列を壊さずにすべてのテキストをPHPスクリプトに送信できます。

新ライン:

data: 'do=leave_footprint&footPrint=' + encodeURIComponent(footPrint) + '&ref=' + goUserId + '&json=1', 

このソリューションは、私のために働いてい...質問のコメントや提案はまだ歓迎します。

0

try cacheをfalseに設定してください。 http://api.jquery.com/jQuery.ajax/

からキャッシュブール デフォルト:true、dataTypeと「スクリプト」と「JSONP」 のための偽falseに設定、それがブラウザによってキャッシュされないように要求されたページを強制的になります。 cacheをfalseに設定すると、クエリ文字列パラメータ "_ = [TIMESTAMP]"がURLに追加されます。

+0

ありがとう、私は自分のコードを更新し、投稿が表示されるかどうかを確認します。それがキャッシュの問題ならば、私はまた、キャッシュもないPHPファイルを設定する必要がありますか? – Philip

+0

@Philip PHPのヘッダ()スタッフを置く必要はないと思います。 _ = [TIMESTAMP] paramがこの目的に使用されています – dotoree

関連する問題