3


0

すべてのパラメーターがjquery ajax呼び出しで送信されるわけではありません

jquery ajaxリクエストがすべてのパラメーターを送信しないという奇妙なエラーがあります。

$.ajax({
    url: "/ajax/doAssignTask",
    type: 'GET',
    contentType: "application/json",
    data: {
        "just_a_task": just_a_task,
        "fb_post_date": fb_post_date,
        "task_fb_postId": task_fb_postId,
        "sedia_task_guid": sedia_task_guid,
        "itemGuid": itemGuid,
        "itemType": itemType,
        "taskName": taskName,
        "assignedToUserGuid": assignedToUserGuid,
        "taskDescription": taskDescription
    },
    success: function(data, status) {
        //success code
    },
    error: function(xhr, desc, err) {
        //error code
    }
});

しかし、firebug(およびデバッグ)を使用すると、これらの変数のみがポストされていることがわかります。

assignedToUserGuid
itemGuid
itemType
just_a_task
taskDescription
taskName

「fb_post_date」、「task_fb_postId」、および「sedia_task_guid」がありません

一部のアイテムのみを投稿し、他のアイテムを投稿しない原因は何ですか? 誰でも知ってる?

データはasp.netコントローラーに送信され、jsonresultが返されます(したがってcontentTypeです)

任意の助けは大歓迎です。 ありがとうございます。

4 Answer


2


コーディングとデバッグを支援するためにすべきことは、JSONデータを変数に移動することです…​ つまり、投稿する前に変数内の内容を簡単に確認できます

var myData = {
    just_a_task: just_a_task,
    fb_post_date: fb_post_date,
    task_fb_postId: task_fb_postId,
    sedia_task_guid: sedia_task_guid,
    itemGuid: itemGuid,
    itemType: itemType,
    taskName: taskName,
    assignedToUserGuid: assignedToUserGuid,
    taskDescription: taskDescription
};
var jsonData = $.toJSON(myData);

$.ajax({
    url: "/ajax/doAssignTask",
    type: "GET",
    contentType: "application/json",
    dataType: "json",
    data: jsonData,
    success: function(data, status) {
        //success code
    },
    error: function(xhr, desc, err) {
        //error code
    }
});

コードを実行する時間はありませんが、JSONのスピーチマークである可能性があります。 ネイティブJavaScriptとして公開されるはずです


2


次のようなことを試すことができます。

  • すべての変数に値があるかどうかを確認します

  • 変数名から「_」を削除してみてください


1


データ値の特殊文字を確認してください(、\ {} [] "')。 JSONが機能するには、これらの文字をエスケープする必要があります。

お役に立てれば。


0


健全性チェックのために、オプションに「beforeSend」を追加して、値が送信されてそこから移動することを確認してください。

e.g.

.ajax({
    beforeSend: function (xhr) {
  // this==the options for this ajax request
  if(! fb_post_date || !task_fb_postId || ! sedia_task_guid){
    alert("BORKED!");
  }
},