这样做效果很好:
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 Bad Request(只是使用. AJAX 重新制定上述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}
6条答案
按热度按时间iqxoj9l91#
我认为您只需要再添加2个选项(
contentType
和dataType
):66bbxpm52#
把这个添加到你 AJAX 调用中:
2sbarzqh3#
回答晚了,但我认为值得保持更新。扩展Andrea Turri的回答,以反映更新的jQuery API和.success/.error弃用方法。
从jQuery1.8.* 开始,首选的方法是使用.done()和.fail(). Jquery Docs
例如,在
pu82cl6c4#
例如,确保在调用$. AJAX 时使用“get”或“post”。
必遇
应用程序.get('/',函数(请求,资源){
===============和员额
必遇
型
m528fe3b5#
我得到了400坏请求错误,即使在设置:
问题出在json对象中传递的属性类型, AJAX 请求对象中的
data
属性。为了解决这个问题,我添加了一个错误处理程序,然后将错误记录到控制台。控制台日志将清楚地显示属性的验证错误(如果有)。
这是我最初的代码:
现在,在提出请求之后,我检查了浏览器开发工具中的控制台选项卡。
它看起来是这样的:
responseJSON.errors[0]
清楚地显示了验证错误:* JSON值无法转换为System. String。路径:$.TestId*,这意味着在发出请求之前,我必须将TestId
转换为数据对象中的字符串。像下面这样更改数据对象创建为我解决了这个问题:
型
我假设其他可能的错误也可以通过记录和检查错误对象来识别。
ws51t4hk6#
您的
AJAX
调用未使用以下两个params
完成。contentType
是要发送的数据类型dataType
是您期望从服务器返回的内容另外尝试使用
JSON.stringify()
方法,它用于将javascript
对象转换为json
字符串。