SyntaxError:无效的正则表达式标志ajax,Javascript

时间:2015-07-13 06:54:55

标签: javascript jquery ajax

这是我的控制器,

public ActionResult ReturnMethodTest(int id) 
{
    string name = "John";
    return Json( new {data=name});       
}

我试图通过使用下面的代码从此控制器获取数据,但我得到Syntax error

你能告诉我我做错了什么吗?

$.ajax({
        url: @Url.Action("ReturnMethodTest", "HomeController"),
        data: {
            id: 5,
        },
        success: function (data) {
            console.log(data);
        }
    });

3 个答案:

答案 0 :(得分:41)

@Url.Action仅返回操作网址的字符串,不带引号。

您需要将该网址包装在引号中。

替换:

url: @Url.Action("ReturnMethodTest", "HomeController"),

使用:

url: '@Url.Action("ReturnMethodTest", "HomeController")',
//   ^                                                 ^

否则,返回给客户端的文件将包含:

url: /HomeController/ReturnMethodTest,

哪个JS不是有效的,也不是你想要的。替换产生以下结果:

url: '/HomeController/ReturnMethodTest',

这是一个完全有效的JavaScript字符串。

答案 1 :(得分:0)

请在onLowMemeroy中指定时删除Controller后缀。

以这种方式尝试:

url

答案 2 :(得分:0)

Javascript 正则表达式文字看起来像这样 - 斜杠之间包含的模式:

var re = /pattern/flags;

如果插入一个以斜杠开头但不在其周围加上引号的变量,它将被解释为正则表达式,而不是字符串。另一次出现的是JSP表达式语言,你应该写第一个,而不是第二个:

var spinner = "<img src='${contextPath}/images/ajax-loader-small.gif'>"
var spinner = "<img src='" + ${contextPath} + "/images/ajax-loader-small.gif'>"