jQuery “$.ajax” 代码不起作用,语法错误
jQuery "$.ajax" code dont work, syntax error?
我发帖是因为我花了很多时间来理解为什么我的代码不起作用......
我尝试使用 jQuery 获取 JSON 数据,我看到一些示例运行良好,但我的没有......
$("#go").click(function(){
var sumName = $("#playername").attr("value");
var region = $("#playerregion").attr("value");
console.log(sumName);
console.log(region);
/********* Working without this part *********/
if ( sumName !== "" ) {
$.ajax({
url: "https://euw.api.pvp.net/api/lol/" + region + "/v1.4/summoner/by-name/" + sumName + "?api_key=MYAPIKEYIDONTSHOWYOU",
type: "GET",
dataType: "json",
data: { }
});
success: function (json) {
var sumNameNoSpace = sumName.replace(" ", ""),
sumID = json[sumNameNoSpace].id;
console.log(sumID);
}
error: function (XMLHttpRequest, textStatus, errorThrown) ({
alert("error getting Summoner data!");
});
}
else {}
/*************************************************/
$("#lolskill iframe").attr("src", "http://www.lolskill.net/game/"+ region +"/"+ sumName);
$("#lolnexus iframe").attr("src", "http://www.lolnexus.com/"+ region + "/search?name="+ sumName +"®ion="+ region);
})
有关更多信息,我尝试从英雄联盟 API 系统获取 json 数据,用户可以给召唤师名称(id 玩家名称)+ 此区域(id 玩家区域)。 我想在 JSON 中获取数据 ID,但我的代码使我认为的所有文件都出错。
我尝试了很多不同的语法,但没有结果。 我已经启动javacript/jQuery已经4天了,我感到完全迷茫。
请帮助菜鸟!:)
您将在所有选项完成之前结束 ajax 调用
$.ajax({
url: "https://euw.api.pvp.net/api/lol/" + region + "/v1.4/summoner/by-name/" + sumName + "?api_key=MYAPIKEYIDONTSHOWYOU",
type: "GET",
dataType: "json",
data: { },
//You ended it here, it should be further down. });
success: function (json) {
var sumNameNoSpace = sumName.replace(" ", ""),
sumID = json[sumNameNoSpace].id;
console.log(sumID);
},
error: function (XMLHttpRequest, textStatus, errorThrown){//removed '('
alert("error getting Summoner data!");
}
});//Should end here
首先,将success
和error
回调保留在 ajax 调用中。这是语法不匹配。.请指正。第二 data:{}
应在 JSON 字符串中序列化。
$.ajax({
url: "https://euw.api.pvp.net/api/lol/" + region + "/v1.4/summoner/by-name/" + sumName + "?api_key=MYAPIKEYIDONTSHOWYOU",
type: "GET",
dataType: "json",
data: JSON.stringify({}),
success: function (json) {
var sumNameNoSpace = sumName.replace(" ", ""),
sumID = json[sumNameNoSpace].id;
console.log(sumID);
},
error: function (XMLHttpRequest, textStatus, errorThrown) ({
alert("error getting Summoner data!");
}
});
当然,您有语法错误。您应该从 AJAX 调用的主体中调用"成功"和"错误"回调(我的意思是,在键入括号之前)")。此外,来自 jQuery API 文档:
jqXHR.success()、jqXHR.error() 和 jqXHR.complete() 回调是 从 jQuery 1.8 开始不推荐使用。为最终代码准备代码 删除,改用 jqXHR.done()、jqXHR.fail() 和 jqXHR.always()。
这应该可以正常工作:
$.ajax({
url: "https://euw.api.pvp.net/api/lol/" + region + "/v1.4/summoner/by-name/" + sumName + ",
type: "GET",
data: ({
api_key: "MYAPIKEYIDONTSHOWYOU"
}).done(function(json){
var sumNameNoSpace = sumName.replace(" ", ""),
sumID = json[sumNameNoSpace].id;
console.log(sumID);
}).fail(function(xhr, textStatus, errorThrown){
alert("error getting Summoner data!");
console.log(textStatus + ": " + errorThrown);
}).always(function(){
console.log("The AJAX request has been completed!")
});
});
您的成功和错误处理程序应该在 $.ajax 调用中。另外,我会在您的错误处理程序中做alert(XMLHttpReqeust.responseText)
,因为当您遇到问题时,这将使您更好地了解出了什么问题。
$.ajax({
url: "https://euw.api.pvp.net/api/lol/" + region + "/v1.4/summoner/by-name/" + sumName + "?api_key=MYAPIKEYIDONTSHOWYOU",
type: "GET",
dataType: "json",
data: "{}",
success: function (json) {
var sumNameNoSpace = sumName.replace(" ", "");
sumID = json[sumNameNoSpace].id;
console.log(sumID);
},
error: function (XMLHttpRequest, textStatus, errorThrown) ({
alert(XMLHttpRequest.responseText);
});
相关文章:
- Angular JS“;控制器为“;语法不起作用
- 属性选择器不起作用(语法错误、无法识别的表达式)
- Angular js指令使用控制器作为语法ng点击不起作用
- jQuery “$.ajax” 代码不起作用,语法错误
- getElementById() 的 Javascript 速记语法不起作用
- PHPStorm - Javascript语法突出显示在php文件中不起作用
- 否则语句不起作用是我在 jQuery 上的语法不正确
- 以下语法有什么问题:它不起作用
- JavaScript 文件中的语法折叠在 Vim 中不起作用
- findOne() 不起作用 - 我的语法有问题
- Javascript警报不起作用可能是由于数组语法
- 路由在角度下不起作用.js - 没有控制台或语法错误
- 角度滤波器 - 带控制器作为语法不起作用
- Ace语法着色不起作用
- 语法错误在JS函数中,它没有'不起作用
- Google Script-合并运算符语法在IF语句中不起作用
- 为什么简化的CommonJS Wrapper语法在我的Dojo AMD模块上不起作用
- JavaScript语法不起作用
- Angular ng模型语法不起作用
- 将变量作为函数param传递不起作用-语法问题