如何使用' $'在Google脚本中创建ajax请求变量错误?

时间:2014-12-29 22:32:11

标签: javascript jquery ajax google-app-engine

我想使用ajax()方法来执行AJAX请求。我尝试在scripts.google.com中创建以下功能,但是我收到以下错误:

function AjaxCall() {
var arr = { City: 'Moscow', Age: 25 };


      $.ajax({
    url: 'https://worker-aws-us-east-1.iron.io/2/projects/',
    type: 'POST',
    data: JSON.stringify(arr),
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    async: false,
    success: function(msg) {
        alert(msg);
    }
});

}

错误:

ReferenceError: "$" is not defined. (line 5, file "Code")

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

看来你的HTML中并没有提供jquery。请记住,jquery是一个客户端,javascript库 - 所以浏览器需要加载jquery javascript文件。换句话说,有效的引用需要在返回给客户端浏览器的HTML中。

您的评论表明您尝试过:

<script src="code.jquery.com/jquery-2.1.1.min.js"></script>

尝试将其更新为:

<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>

如果您在URL的前面没有包含“http://”(或“https://”或“//”),浏览器会认为它是相对路径,并会尝试加载从当前目录(这可能不是你想要做的)。因此,如果您正在查看的页面是

http://www.examplesite.com/example.html

然后,您在评论中显示的脚本标记将尝试从

加载jquery
http://www.examplesite.com/code.jquery.com/jquery-2.1.1.min.js

这可能会返回404错误 - 检查您的javascript控制台,看看它在尝试加载jquery脚本时是否收到错误。

此外,在大多数情况下,建议您将脚本标记放在底部(在关闭正文标记之前)。这样可以在浏览器下载js文件时阻止页面呈现。这不太可能导致您最初看到的问题 - 只是因为您的评论可能表明您在ajax调用之前正在加载它,所以我会提及它。