Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery获取JSON.parse:意外字符_Jquery_Json_Asp.net Mvc 3 - Fatal编程技术网

JQuery获取JSON.parse:意外字符

JQuery获取JSON.parse:意外字符,jquery,json,asp.net-mvc-3,Jquery,Json,Asp.net Mvc 3,您好,我收到以下错误: 二百 语法错误:JSON.parse:意外字符 我在firebug中检查了我的JSON,它显示以下内容: jquery-1.8.3.js (line 2) POST http://localhost:1579/Comets/Progress/4c691777-2a9f-42ca-8421-d076ab4d0450/1 200 OK JSON Sort by key MsgId "4c691777-2a9f-42ca-8421

您好,我收到以下错误:

二百

语法错误:JSON.parse:意外字符

我在firebug中检查了我的JSON,它显示以下内容:

jquery-1.8.3.js (line 2)
POST http://localhost:1579/Comets/Progress/4c691777-2a9f-42ca-8421-d076ab4d0450/1

200 OK    
JSON     
Sort by key     
MsgId          "4c691777-2a9f-42ca-8421-d076ab4d0450"    
Status         2    
CurrentServer  "10.10.143.4"
这对我来说似乎没什么问题,所以我不确定哪里出了错,为什么会出错

我的代码如下:

Jquery:

$(document).ready(function Progress() {
                            var msgId = $('textarea.msgId').val();
                            var status = $('textarea.status').val();
                            $.ajax({
                                type: 'POST',
                                url: "/Comets/Progress/" + msgId + "/" + status,
                                success: function (data) {
                                    //update status
                                    alert("does this work");

                                },
                                error: function (xhr, ajaxOptions, thrownError) {
                                    alert(xhr.status);
                                    alert(thrownError);
                                }
                            });
                        });  
控制器:

  [JsonpFakeFilter]
        [AcceptVerbs(HttpVerbs.Post)]
        public JsonResult Progress(string msgId, int status, String callback)
        {

            //todo need to put recursive function on here (status)

            //check the ip - has it changed
            string strHostName = System.Net.Dns.GetHostName();
            var ipHostInfo = Dns.Resolve(Dns.GetHostName());
            var ipAddress = ipHostInfo.AddressList[0];
            var currentServer = ipAddress.ToString();

            var cometJson = new CometJson
                                {
                                    MsgId = msgId,
                                    Status = status,
                                    CurrentServer = currentServer
                                };

            //check what the status is if it is less than 4 we want to add one
            if (status <= 4)
            {
                status = status + 1;
                cometJson = new CometJson
                {
                    MsgId = msgId,
                    Status = status,
                    CurrentServer = currentServer
                };
                return Json(cometJson);
            }

            return Json(cometJson);
        }
[JsonpFakeFilter]
[接受动词(HttpVerbs.Post)]
公共JsonResult进度(字符串msgId、int状态、字符串回调)
{
//todo需要在此处设置递归函数(状态)
//检查ip-是否已更改
字符串strHostName=System.Net.Dns.GetHostName();
var ipHostInfo=Dns.Resolve(Dns.GetHostName());
var ipAddress=ipHostInfo.AddressList[0];
var currentServer=ipAddress.ToString();
var cometJson=new cometJson
{
MsgId=MsgId,
状态=状态,
CurrentServer=CurrentServer
};
//如果小于4,请检查状态。我们要添加一个

如果(状态您的服务器返回无效的JSON:

callback_dc99fd712fff48d6a56e0d9db5465ac3({"MsgId":"b91949f4-a30e-4f3f-b6e8-f83f‌​c40ada89","Status":2,"CurrentServer":"10.10.143.4"})
{"MsgId":"b91949f4-a30e-4f3f-b6e8-f83f‌​c40ada89","Status":2,"CurrentServer":"10.10.143.4"}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Progress(string msgId, int status)
{
    ...
}
这不是JSON。这是跨域AJAX调用,并且用于跨域AJAX调用。在这种情况下,您不是在进行跨域AJAX调用,因此应该删除
回调\u dc99fd712ff48d6a56e0d9db5465ac3
包装并返回有效的JSON:

callback_dc99fd712fff48d6a56e0d9db5465ac3({"MsgId":"b91949f4-a30e-4f3f-b6e8-f83f‌​c40ada89","Status":2,"CurrentServer":"10.10.143.4"})
{"MsgId":"b91949f4-a30e-4f3f-b6e8-f83f‌​c40ada89","Status":2,"CurrentServer":"10.10.143.4"}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Progress(string msgId, int status)
{
    ...
}
我猜您修饰控制器操作的
[JsonpFakeFilter]
属性负责用这个回调包装JSON结果

因此,请摆脱它,并确保您的服务器返回有效的JSON:

callback_dc99fd712fff48d6a56e0d9db5465ac3({"MsgId":"b91949f4-a30e-4f3f-b6e8-f83f‌​c40ada89","Status":2,"CurrentServer":"10.10.143.4"})
{"MsgId":"b91949f4-a30e-4f3f-b6e8-f83f‌​c40ada89","Status":2,"CurrentServer":"10.10.143.4"}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Progress(string msgId, int status)
{
    ...
}

您能否显示服务器返回的JSON字符串,如FireBug中所示?请尝试记录JSON结果,可能它不是正确的JSON字符串。@DarinDimitrov Hi在FireBug中我看到MsgId“fc91db57-b35e-4254-82f0-3defb9f4c079”状态2 CurrentServer“10.10.143.4”这不是你的意思吗?你试过用数据替换数据吗?在成功函数中写“console.log(data)”,然后发布结果。谢谢,这将使我走上正确的道路-我确实需要一个jsonp,因为一旦上线,它将跨域运行,但至少现在我将朝着正确的方向前进