具有API变量的Ajax URL属性

时间:2011-09-27 09:24:01

标签: javascript jquery ajax

我想要做的就是能够在Ajax调用的URL中指定用户ID和API密钥:

目前正在做:

$.ajax({
  url: "https://www.googleapis.com/plus/v1/people/115332174513505898112?key=AIzaFrCzbKLawSPG8C0tjZDozO1bSWx49mJm13s",
  context: document.body,
  dataType: 'jsonp',
    success: function(data){
      //blah...
    }
});

但是我想能够动态设置UserID和API Key,所以想要URL中的值:动态:

E.g。

var userId = 115332174513505898112;
var apiKey = AIzaSyCzbKLawSPG8C0tjZDozO1bSWx49mJm13s;

url: "https://www.googleapis.com/plus/v1/people/" + userId + "?key=" + apiKey,

但是,只要在$.ajax({函数中定义变量,JavaScript就会停止工作,我会收到错误:

missing : after property id
[Break On This Error] var userId = 115332174513505898112; 

我做错了什么,我确定我以前做过这个?

4 个答案:

答案 0 :(得分:2)

这应该这样做:

var userId = "115332174513505898112";
var apiKey = "AIzaSyCzbKLawSPG8C0tjZDozO1bSWx49mJm13s";
$.ajax({
  url: "https://www.googleapis.com/plus/v1/people/" + userId + "?key=" + apiKey,
  context: document.body,
  dataType: 'jsonp',
    success: function(data){
      //blah...
    }
});

需要注意的事项:

  • 围绕userIdapiKey的值引用。 (你可能不需要它们在userId值附近;你绝对在apiKey附近做。)
  • 您可以在实际的ajax函数调用之外定义它们。

我假设代码已经在函数中,例如:

function foo() {
    var userId = "115332174513505898112";
    var apiKey = "AIzaSyCzbKLawSPG8C0tjZDozO1bSWx49mJm13s";
    $.ajax({
      url: "https://www.googleapis.com/plus/v1/people/" + userId + "?key=" + apiKey,
      context: document.body,
      dataType: 'jsonp',
        success: function(data){
          //blah...
        }
    });
}

如果没有,请将其放在一个中以避免使用那些var语句创建全局变量。

答案 1 :(得分:1)

您应该将变量的值放在引号中......

此外,您无法在对象中编写任何javascript代码 - 您需要在对象外声明您的变量,并在其中引用它们 - 如下所示:

var userId = "115332174513505898112";
var apiKey = "AIzaSyCzbKLawSPG8C0tjZDozO1bSWx49mJm13s";

$.ajax({
  url: "https://www.googleapis.com/plus/v1/people/" + userId + "?key=" + apiKey,
  context: document.body,
  dataType: 'jsonp',
    success: function(data){
      //blah...
    }
});

答案 2 :(得分:1)

使用此代码。字符串必须包含在"(引号)内。此外,您无法使用var中的{ ... }定义变量(对象,不要与函数/循环/条件体的标记混淆)。

var userId = "115332174513505898112";
var apiKey = "AIzaSyCzbKLawSPG8C0tjZDozO1bSWx49mJm13s";


$.ajax({
  url: "https://www.googleapis.com/plus/v1/people/"+userId+"?key="+api,
  context: document.body,
  dataType: 'jsonp',
    success: function(data){
      //blah...
    }
});

答案 3 :(得分:0)

您必须定义变量(var语句) 对象{}和函数调用$.ajax()