ajax发布参数500服务器未找到错误

时间:2016-01-05 06:58:51

标签: javascript jquery ajax web-services

我用ajax调用asmx服务方法首先我用参数ajax做了我给错误的500服务器找不到。我的参数名称与asmx服务相同,这里是带参数

的代码
$(document).ready(function () {
            var content = contLocation
            $.ajax({
                type: 'POST',
                url: 'LibraryService.asmx/BooksContent',
                dataType: 'json',
                data: {'ContLoc':'" + content + "'},
                contentType: 'application/json; charset=utf-8',
                success: function (response) {

                    var data = response.d;

                    alert(data);

                },
                error: function (error) {
                    console.log(error);
                }

            });




        });

它给了我

  

无法加载资源:服务器响应状态为500   (内部服务器错误)   错误   但是当我尝试没有参数时(是的,我在asmx中更改了函数,使它没有参数,我的ajax代码数据部分就像这样:

  data: "{}",

在这种情况下,我的ajax警告我,因为我需要!

我也试过像这样的参数,但仍然是同样的错误。

 data: "{'ContLoc':'" + Content+ "'}",

3 个答案:

答案 0 :(得分:2)

您正在传递一个字符串

" + content + "

作为$ ajax数据参数。

它应该是一个像这样的简单JSON吗?

data: {ContLoc: content}

答案 1 :(得分:1)

尝试以这种方式传递参数:

data: {'ContLoc': content}

我希望有所帮助!

答案 2 :(得分:1)

你说:

contentType: 'application/json; charset=utf-8',

...所以你声称你正在发送JSON。

你也说过:

data: {'ContLoc':'" + content + "'},

...所以你实际上是在发送URL表格编码数据(ContLoc=%22(whatever content is)%22)。

  1. 确定您调用的端点是否需要URL表单编码数据,JSON或其他
  2. 修复数据以使其与端点期望的内容匹配
  3. 修复内容类型,使其与您发送的数据相匹配
  4. 听起来就像你应该发送JSON一样,在这种情况下代码应如下所示:

    contentType: 'application/json; charset=utf-8',
    data: JSON.stringify({ ContLoc : content }),