Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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 使用Get进行ajax调用会产生500个错误_Jquery_Asp.net_Ajax_Get_Webmethod - Fatal编程技术网

Jquery 使用Get进行ajax调用会产生500个错误

Jquery 使用Get进行ajax调用会产生500个错误,jquery,asp.net,ajax,get,webmethod,Jquery,Asp.net,Ajax,Get,Webmethod,我使用POST调用了一个[web方法],但当我“获取”数据时,我尝试使用GET 使用PostWorks。 使用GET会给我一个500错误 这是对我的[web方法]的主要jquery调用: $.ajax({ type: 'GET', contentType: 'application/json', dataType: 'json', url: 'Cloud/Feed.aspx/GetNe

我使用POST调用了一个[web方法],但当我“获取”数据时,我尝试使用GET

使用PostWorks。 使用GET会给我一个500错误

这是对我的[web方法]的主要jquery调用:

        $.ajax({
            type: 'GET',
            contentType: 'application/json',
            dataType: 'json',
            url: 'Cloud/Feed.aspx/GetNextFrames2',
            data: '{ test: "hime"}',
~

这是我的测试[网络方法]

[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public static string GetNextFrames2(string test)
{
    return 'test'
}
如果我不传递任何参数,我将使用get不会得到任何错误。 只要添加一个参数,我就会得到500个内部错误

我用过wireshark和Fiddler,但我看不到任何有用的东西

这显然取决于使用参数。所以,至少我已经指出了错误所在

我已尝试将参数直接附加到url:

myurl?par=testme

但还是同样的错误

我还能试什么


谢谢,Ajax GET请求不应该有内容类型,因为它们没有任何实体体

供参考:

试一试


这两种方法都应该有效,Ajax GET请求不应该具有内容类型,因为它们没有任何实体体

供参考:

试一试


这两种方法都可以

问题在于查询字符串中的值。该值应在引号内。下面的代码正在工作

$.ajax({
            type: 'GET',
            contentType:'application/json',
            dataType: 'json',
            cache:false,
            url: "TestWebMathod.aspx/GetNextFrames2?test='hime'",
            error: function (error) {
                alert(error.responseText)
            },
            success: function (result) {
                alert(result.d)

            }

        });

还要查看error.responseText以了解确切的异常消息。这将有助于解决错误。

问题在于查询字符串中的值。该值应在引号内。下面的代码正在工作

$.ajax({
            type: 'GET',
            contentType:'application/json',
            dataType: 'json',
            cache:false,
            url: "TestWebMathod.aspx/GetNextFrames2?test='hime'",
            error: function (error) {
                alert(error.responseText)
            },
            success: function (result) {
                alert(result.d)

            }

        });
还要查看error.responseText以了解确切的异常消息。这将有助于解决错误。

上面关于GET的contentType的评论是正确的,但WebMethods需要它-

所以说真的,除非你发帖子,IMHO,否则用WebMethods让事情运转起来真的很痛苦。我甚至不能让它与get一起工作,如果这个方法有一个参数,它会爆炸出来,所以如果有人能让它工作,好极了!请注意,即使是使用GET的链接示例也包含一个参数……不确定这是否仅仅是过去的事实,文章的日期是2007年

因此,如果您必须根据上述答案进行更新:

WebMethod:

    [WebMethod]
    [ScriptMethod(UseHttpGet = true)]
    public static string GetNextFrames2(string test)
    {
        //Should now work based on answer above

        //Yes, this is FUBAR, but technically feasible (no need for params in method)
        //var query = HttpContext.Current.Request.QueryString;

        //now do what you need to do with your querystring data 
        // re: that's where your data is in GET ($.get)

        ....           
    }
其他令人惊叹的注释:

如果您有FriendlyURL,则必须将其注释掉 AutoRedirectMode=RedirectMode.Permanent在RouteConfig->FriendlyUrlSettings中-因为它执行它所说的操作并将.aspx重定向到一个友好的url…是的,包括上面的。。。 希望这对您有所帮助,也许会让您思考WebAPI:

更新摘要 如上图所示,答案是用引号将字符串括起来——因此它似乎强烈地键入参数。如果int:

如果$.get数据:{test:55}

上面关于GET的contentType的注释是正确的,但是WebMethods需要它-

所以说真的,除非你发帖子,IMHO,否则用WebMethods让事情运转起来真的很痛苦。我甚至不能让它与get一起工作,如果这个方法有一个参数,它会爆炸出来,所以如果有人能让它工作,好极了!请注意,即使是使用GET的链接示例也包含一个参数……不确定这是否仅仅是过去的事实,文章的日期是2007年

因此,如果您必须根据上述答案进行更新:

WebMethod:

    [WebMethod]
    [ScriptMethod(UseHttpGet = true)]
    public static string GetNextFrames2(string test)
    {
        //Should now work based on answer above

        //Yes, this is FUBAR, but technically feasible (no need for params in method)
        //var query = HttpContext.Current.Request.QueryString;

        //now do what you need to do with your querystring data 
        // re: that's where your data is in GET ($.get)

        ....           
    }
其他令人惊叹的注释:

如果您有FriendlyURL,则必须将其注释掉 AutoRedirectMode=RedirectMode.Permanent在RouteConfig->FriendlyUrlSettings中-因为它执行它所说的操作并将.aspx重定向到一个友好的url…是的,包括上面的。。。 希望这对您有所帮助,也许会让您思考WebAPI:

更新摘要 如上图所示,答案是用引号将字符串括起来——因此它似乎强烈地键入参数。如果int:

如果$.get数据:{test:55}


500错误在ajax脚本中不是问题,但在url目标中是问题。如果你使用php,我可以帮助你解决这个问题:将url改为完整的url,就像查看这个线程一样:@kefy,如果我是!如果我使用php,我发现很多关于如何诊断问题的google搜索结果,但是,唉,asp.net:@sainpreep Hi,谢谢你的建议。我以前尝试过这个,但仍然没有乐趣:500错误在ajax脚本中不是问题,而是在url目标中。如果你使用php,我可以帮助你解决这个问题:将url改为完整的url,就像查看这个线程一样:@kefy,如果我是!如果我使用php,我发现很多关于如何诊断问题的google搜索结果,但是,唉,asp.net:@sainpreep Hi,谢谢你的建议。我以前试过这个,但仍然没有快乐:嗨,在密苏里州奔波工作。谢谢你的建议,我已经试过了。我仍然得到相同的错误…get方法没有内容。通过GET发送的任何数据都必须发送进来url@P埃特尔:这很有道理,这正是我想让自己清醒过来的原因。我接受的答案部分是基于你的评论。谢谢嗨,我在密苏里州奔波工作。谢谢你的建议,我已经试过了。我仍然得到相同的错误…get方法没有内容。通过GET发送的任何数据都必须发送进来url@P埃特尔:这很有道理,这正是我想要得到的
我的头转过来了。我接受的答案部分是基于你的评论。谢谢嗨,是的,它确实有用。非常感谢你。我需要在url中包含的。棒 极 了我很高兴,是的,它确实有用。非常感谢你。我需要在url中包含的。棒 极 了我很高兴,谢谢你提供的额外信息和链接。你给了我一些东西,让我去了解和调查。总是一件好事:@AndrewSimpson是我的一些WebMethods,所以这对我来说也是一个重新学习的过程:嗨,谢谢你的总结。是的,我知道我通常使用Web API,我一直想知道为什么我必须在服务器端包含GET和POST属性才能从JS请求GET。现在,我想我知道了…嗨,谢谢你提供的额外信息和链接。你给了我一些东西,让我去了解和调查。总是一件好事:@AndrewSimpson是我的一些WebMethods,所以这对我来说也是一个重新学习的过程:嗨,谢谢你的总结。是的,我知道我通常使用Web API,我一直想知道为什么我必须在服务器端包含GET和POST属性才能从JS请求GET。现在,我想我知道了。。
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public static string GetNextFrames2(int test)
{
  ...