jQuery.ajax返回400错误请求
问题描述:
这工作得很好:jQuery.ajax返回400错误请求
jQuery('#my_get_related_keywords').click(function() {
if (jQuery('#my_keyword').val() == '') return false;
jQuery.getJSON("http://boss.yahooapis.com/ysearch/web/v1/"
+jQuery('#my_keyword').val()+"?"
+"appid=myAppID"
+"&lang=en"
+"&format=json"
+"&count=50"
+"&view=keyterms"
+"&callback=?",
function (data) {//do something}
这将返回400错误请求(只是上面jQuery的使用阿贾克斯,支持错误处理再形成)。
jQuery('#my_get_related_keywords').click(function()
{
if (jQuery('#my_keyword').val() == '') return false;
jQuery('#my_loader').show();
jQuery.ajax(
{
url: "http://boss.yahooapis.com/ysearch/web/v1/"
+jQuery('#my_keyword').val()+"?"
+"appid=myAppID"
+"&lang=en"
+"&format=json"
+"&count=50"
+"&view=keyterms"
+"&callback=?",
success: function(data)
{//do something}
答
我想你只需要添加2个选项(contentType
和dataType
):
$('#my_get_related_keywords').click(function() {
$.ajax({
type: "POST",
url: "HERE PUT THE PATH OF YOUR SERVICE OR PAGE",
data: '{"HERE YOU CAN PUT DATA TO PASS AT THE SERVICE"}',
contentType: "application/json; charset=utf-8", // this
dataType: "json", // and this
success: function (msg) {
//do something
},
error: function (errormessage) {
//do something else
}
});
}
+0
感谢您的快速帮助托罗。 @light也是正确的。 – 2010-11-11 17:30:17
答
添加到您的Ajax调用:
contentType: "application/json; charset=utf-8",
dataType: "json"
+0
谢谢。就是这样。 @Toro只是打你:) – 2010-11-11 17:30:58
答
晚的答案,但我想通值得保持这个更新。扩展Andrea Turri的答案以反映更新的jQuery API和.success/.error弃用的方法。
从jQuery 1.8。*开始,这样做的首选方法是使用.done()和.fail()。 Jquery Docs
例如
$('#my_get_related_keywords').click(function() {
var ajaxRequest = $.ajax({
type: "POST",
url: "HERE PUT THE PATH OF YOUR SERVICE OR PAGE",
data: '{"HERE YOU CAN PUT DATA TO PASS AT THE SERVICE"}',
contentType: "application/json; charset=utf-8",
dataType: "json"});
//When the request successfully finished, execute passed in function
ajaxRequest.done(function(msg){
//do something
});
//When the request failed, execute the passed in function
ajaxRequest.fail(function(jqXHR, status){
//do something else
});
});
您是否需要在某处添加方法(post或get)? – Jan 2010-11-11 17:02:23