2011-11-22 38 views
8

Tôi đang cố chuyển đối tượng JSON tới .getJSON nhưng tôi vẫn gặp phải lỗi yêu cầu không hợp lệ. Đây là những gì tôi đang cố gắng:Chuyển dữ liệu JSON tới .getJSON trong jQuery?

var data = { 
    "SomeID": "18", 
    "Utc": null, 
    "Flags": "324" 
}; 

$.getJSON("https://somewhere.com/AllGet?callback=?", JSON.stringify(data), function (result) { 
    alert(result); 
}); 

Hiện nay để làm cho nó làm việc, tôi phải làm điều này, nhưng tôi không thích làm thế nào tôi phải tự xây dựng chuỗi truy vấn:

$.getJSON("https://somewhere.com/AllGet?SomeID=18&Utc=&Flags=324&callback=?", null, function (result) { 
     alert(result); 
    }); 

Bất cứ ai cũng biết làm thế nào để làm cho các yêu cầu dễ dàng hơn với các đối tượng JSON được truyền vào? Tôi sẽ đánh giá cao sự giúp đỡ hoặc tư vấn.

+0

thử '$ .param (data);' kết quả đầu ra '" SomeID = 18 & Utc = null & Flags = 324 " – UnLoCo

Trả lời

18

theo trang web, đây là hợp lệ:

$.getJSON("test.js", { name: "John", time: "2pm" }, function(json) { 
    alert("JSON Data: " + json.users[3].name); 
    }); 

vì vậy hãy thử:

var data = { 
    SomeID: "18", 
    Utc: null, 
    Flags: "324" 
}; 

$.getJSON("https://somewhere.com/AllGet?callback=?", data, function (result) { 
    alert(result); 
}); 

chỉnh sửa: http://api.jquery.com/jQuery.getJSON/

1

tại sao chính xác bạn cần gọi lại? (Đợi đã, jsonp) Tôi sẽ thử các bước sau:

$.getJSON("https://somewhere.com/AllGet?callback=?", data, function(result) { 
    alert(result); 
}); 

một nơi nào đó trong firebug và xem nó có trả về những gì bạn mong đợi không. Tôi không chắc chắn một chuỗi như dữ liệu nào, nhưng chỉ cần cho một đối tượng hoạt động tốt afaik.

3

Không sử dụng JSON.stringfy, chỉ cần chuyển dữ liệu như cũ.

$.getJSON("https://somewhere.com/AllGet?callback=?", data, function (result) { 
    alert(result); 
}); 
3

Khi bạn cung cấp dữ liệu vào một jQuery GET yêu cầu, nó hy vọng một đối tượng, không phải là một chuỗi JSON, để xây dựng các thông số chuỗi truy vấn. Hãy thử thay đổi mã ban đầu của bạn chỉ này:

$.getJSON("https://somewhere.com/AllGet?callback=?", data, function (result) { 
    alert(result); 
}); 
0
$.getJSON("https://somewhere.com/AllGet?callback=?", {SomeID:"18",Utc:null,Flags:"324"}, function (result) { 
     alert(result); 
    }); 

HOẶC

var data = { 
    "SomeID": "18", 
    "Utc": null, 
    "Flags": "324" 
}; 


$.getJSON("https://somewhere.com/AllGet?callback=?", 
{ 
SomeID:data.SomeID, 
Utc:data.Utc, 
Flags:data.Flags 
}, 
function (result) { 
      alert(result); 
     }); 
1

Bạn không cần phải làm JSON.stringfy, chỉ cần vượt qua JSON đối tượng, jQuery sẽ xây dựng tham số URL của bạn với điều đó

$.getJSON("https://somewhere.com/AllGet?callback=?", data, function (result) { 
    alert(result); 
}); 
0

tôi đã cố gắng mã hóa các json và nó làm việc.

Không chắc chắn mức độ hiệu quả hoặc thực tế của nó, chia sẻ nó giống như một công việc xung quanh cho câu hỏi trên.

$.getJSON("https://somewhere.com/AllGet?data="+encodeURI(JSON.stringify(data)), function (result) { 
     alert(result); 
}); 
Các vấn đề liên quan