Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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
Javascript jQuery ajax对mvc操作的调用不';t发射成功/错误_Javascript_Jquery_Ajax_Asp.net Mvc - Fatal编程技术网

Javascript jQuery ajax对mvc操作的调用不';t发射成功/错误

Javascript jQuery ajax对mvc操作的调用不';t发射成功/错误,javascript,jquery,ajax,asp.net-mvc,Javascript,Jquery,Ajax,Asp.net Mvc,尝试为全局会话变量创建开关时,ajax调用不会返回“成功”或“错误” 调用操作并设置会话密钥,但从不触发成功/错误函数 这很奇怪,因为我在其他调用中使用了相同的结构来替换div,并且可以正常工作 Javascript 不起作用 function SwitchHelpMode() { debugger; var helpmode = true; $.ajax({ type: 'GET', url: '/Session/GetSessionKe

尝试为全局会话变量创建开关时,ajax调用不会返回“成功”或“错误”

调用操作并设置会话密钥,但从不触发成功/错误函数

这很奇怪,因为我在其他调用中使用了相同的结构来替换div,并且可以正常工作

Javascript 不起作用

function SwitchHelpMode() {
    debugger;
    var helpmode = true;
    $.ajax({
        type: 'GET',
        url: '/Session/GetSessionKey',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: { key: "helpmode" },
        sucess: function (data) {
            alert(data);
            //debugger;
            //var ok = data.success;
            //if (ok) {
            //    var algo = data.value;
            //    alert(algo);
            //    helpmode = !algo;
            //}
        },
        error: function (xhr) {
            //debugger;
            alert(xhr);
            alert('ERROR::SetSessionKey!' + xhr.responseText);
        }
    });
    helpmode = false;
    $.ajax({
        type: 'GET',
        url: '/Session/SetSessionKey',
        data: { key: "helpmode", value: helpmode },
        sucess: function (data) {
            alert(data);
        },
        error: function (xhr) {
            debugger;
            alert('ERROR::SetSessionKey!' + xhr.responseText);
        }
    });
}
控制器

public ActionResult SetSessionKey(string key, string value)
{
    Session[key] = value;

    return Json(new { success = true }, JsonRequestBehavior.AllowGet);
}

public ActionResult GetSessionKey(string key)
{

    if(Session[key] != null)
    {
        var value = Session[key];

        return Json(new { success = true, data = value }, JsonRequestBehavior.AllowGet);
    }
    else
    {
        return Json(new { success = false }, JsonRequestBehavior.AllowGet);
    }
}
http://localhost:50518/Session/GetSessionKey?key=helpmode
{"success":true,"data":"false"}
http://localhost:50518/Session/SetSessionKey?key=helpmode&value=false
{"success":true}

HTTP/1.1 200 OK

Cache-Control: private

Content-Type: application/json; charset=utf-8

Server: Microsoft-IIS/8.0

X-AspNetMvc-Version: 5.2

X-AspNet-Version: 4.0.30319

X-SourceFiles: =?UTF-8?B?
UzpcVlNTb3VyY2VcUHJvamVrdGVcTU1JXGJmdWVudGVzXE1NSVxNaW5kc2hhcmUuTU1JXE1NSVxTZXNzaW9uXEdldFNlc3Npb25LZXk=?=

Persistent-Auth: true

X-Powered-By: ASP.NET

WWW-Authenticate: Negotiate oRswGaADCgEAoxIEEAEAAABDh+CIwTbjqQAAAAA=
Date: Tue, 07 Jul 2015 12:45:03 GMT

Content-Length: 31
Javascript有效

function FilterInfoByFlightsCallback(values) {
    //debugger;
    var data = JSON.stringify(values);
    var url = '/Campaign/FilterInfoByFlights';
    $.ajax({
        type: 'GET',
        url: url,
        data: { filter: data },
        success: function (result) {
            $('#infoList').html(result);
        },
        error: function (result) {
            // handle errors
            location.href = "/MindMonitor/"
        }
    });
}
检查员的回复

public ActionResult SetSessionKey(string key, string value)
{
    Session[key] = value;

    return Json(new { success = true }, JsonRequestBehavior.AllowGet);
}

public ActionResult GetSessionKey(string key)
{

    if(Session[key] != null)
    {
        var value = Session[key];

        return Json(new { success = true, data = value }, JsonRequestBehavior.AllowGet);
    }
    else
    {
        return Json(new { success = false }, JsonRequestBehavior.AllowGet);
    }
}
http://localhost:50518/Session/GetSessionKey?key=helpmode
{"success":true,"data":"false"}
http://localhost:50518/Session/SetSessionKey?key=helpmode&value=false
{"success":true}

HTTP/1.1 200 OK

Cache-Control: private

Content-Type: application/json; charset=utf-8

Server: Microsoft-IIS/8.0

X-AspNetMvc-Version: 5.2

X-AspNet-Version: 4.0.30319

X-SourceFiles: =?UTF-8?B?
UzpcVlNTb3VyY2VcUHJvamVrdGVcTU1JXGJmdWVudGVzXE1NSVxNaW5kc2hhcmUuTU1JXE1NSVxTZXNzaW9uXEdldFNlc3Npb25LZXk=?=

Persistent-Auth: true

X-Powered-By: ASP.NET

WWW-Authenticate: Negotiate oRswGaADCgEAoxIEEAEAAABDh+CIwTbjqQAAAAA=
Date: Tue, 07 Jul 2015 12:45:03 GMT

Content-Length: 31


有什么想法吗?

如果您没有丰富的AJAX使用经验,那么AJAX可能很难排除故障。可用于所有现代浏览器的开发工具(或FireBug)是您的朋友。它们使查看/理解服务器作为响应返回的内容变得更加容易

因为请求使用的是Ajax,所以浏览器不会呈现返回的任何错误页面

使用Chrome(其他工具类似,通常使用CTRL+SHIFT+I或F12打开):

标题将显示请求的内容(发送到服务器的内容)

响应将向您显示服务器响应的内容。对于成功的请求,它可能是JSON,如果发生错误,它可能是错误页面的HTML源

预览选项卡将呈现服务器响应(如果可能)。如果您从服务器收到错误响应/页面,这尤其有用,因为您不必费力地浏览原始HTML来查找错误详细信息


如果AJAX调用失败,并且服务器返回500个错误,那么您可以随时检查服务器日志或查看网络>预览选项卡以查看返回的错误详细信息。您可以像处理任何传统的服务器响应一样对错误进行故障排除。

如果您对AJAX没有太多的经验,则很难对其进行故障排除。可用于所有现代浏览器的开发工具(或FireBug)是您的朋友。它们使查看/理解服务器作为响应返回的内容变得更加容易

因为请求使用的是Ajax,所以浏览器不会呈现返回的任何错误页面

使用Chrome(其他工具类似,通常使用CTRL+SHIFT+I或F12打开):

标题将显示请求的内容(发送到服务器的内容)

响应将向您显示服务器响应的内容。对于成功的请求,它可能是JSON,如果发生错误,它可能是错误页面的HTML源

预览选项卡将呈现服务器响应(如果可能)。如果您从服务器收到错误响应/页面,这尤其有用,因为您不必费力地浏览原始HTML来查找错误详细信息


如果AJAX调用失败,并且服务器返回500个错误,那么您可以随时检查服务器日志或查看网络>预览选项卡以查看返回的错误详细信息。您可以像处理任何传统服务器响应一样对错误进行故障排除。

在-
suces:function(data){
中没有额外的
c
,因此,即使来自服务器的响应是
200 OK
,但它不会触发传统的
success
,因为它找不到响应


它应该是-
success:function(data){
success:function(data){中没有额外的
c
,因此,即使服务器的响应是
200 OK
,但它不会触发传统的
success
,因为它无法找到一个


应该是-
success:function(data){

哪一个不工作
SetSessionKey
GetSessionKey
?它们都没有被调用。这两个操作都被调用,但我从未得到在success/error回调中触发的“警报”。我假设您错过了
数据类型:“json”,
在第二个ajax调用和函数中,已经有一段时间没有使用MVC了,所以我不是100%确定,但您是否应该编写请求而不是从方法返回?FilterInfoByFlights是否也使用返回而不是“echo”和ti works?编辑:不管怎样,我想您必须获得一个response@teovankot也使用数据类型:“json”它不起作用。哪一个不起作用
SetSessionKey
GetSessionKey
?它们都不起作用。这两个操作都被调用,但我从未获得在成功/错误回调中触发的“警报”我想您错过了
数据类型:“json”,
在第二个ajax调用和函数中,已经有一段时间没有使用MVC了,所以我不是100%确定,但您是否应该编写请求而不是从方法返回?FilterInfoByFlights是否也使用返回而不是“echo”和ti works?编辑:不管怎样,我想您必须获得一个response@teovankot也使用数据类型:“json”它不起作用。我添加了有关响应的信息,它们都返回200 Ok。请检查代码中的拼写是否成功。您提到的success应该是success。因此响应是200请求,但由于您没有定义success的映射,因此它只是从不记录添加的关于响应的信息,它们都返回200 Ok。检查代码中成功的拼写。您提到suces应该是success。因此,响应是一个200请求,但由于您没有定义suces的映射,因此它永远不会被记录