“@”在jquery ajax Data中作为非法字符

时间:2014-01-31 10:35:10

标签: javascript jquery ajax

我正在进行像这样的Ajax调用

var data = { fn: "course_signup", cid: 1249, cemail: emaifield };

                    $.ajax({
                        type: "POST",
                        url: "/AjaxHandler",
                        data: data,
                        success: function(data) {

                        },
                        error: function(xmlHttpRequest, textStatus, errorThrown) {

                        },
                        complete: function(data) {

                        }
                    });

你可以看到cemail字段中有一个“@”,浏览器会抛出javascript错误

Error: SyntaxError: illegal character
Source Code:
var data = { fn: "course_signup", cid: 1249, cemail: as@asd.com

4 个答案:

答案 0 :(得分:4)

该电子邮件地址应为字符串:

var data = { fn: "course_signup", cid: 1249, cemail: "as@asd.com"  };
                                                     ^          ^

任何不是Number,Boolean或Object的值都应该用引号括起来。阅读不同的Javscript Data Structures,了解如何构建数据。

答案 1 :(得分:2)

用双引号写下电子邮件:

var data = { fn: "course_signup", cid: 1249, cemail: "as@asd.com"  };

答案 2 :(得分:2)

你需要创建一个字符串:

var data = { fn: "course_signup", cid: 1249, cemail: "as@asd.com" };

答案 3 :(得分:2)

这与jQuery没有任何关系。您的问题是它不是有效的javascript对象文字语法。

字符串必须用引号括起来。 (键除外,如果它们具有有效的变量名称)。

这是无效的(除非在范围内有一个名为lol的变量):

var obj = {hey: lol};

这是

var obj = {hey: "lol"};

如果你的密钥不是有效的var名称,也可以引用它

var obj = {"123 hey there": "lol"};