使用 ajax?500 内部服务器从 HTML 页面调用 Web 服务 POST 方法错误

本文关键字:Web 调用 服务 POST 错误 方法 HTML ajax 内部 服务器 使用 | 更新日期: 2023-09-27 18:31:41

我的 html 页面代码是这个

   function Save_Click() {

      if (validate() == true)
       {
           var dr = {};
         dr.phoneNo = phoneNo;
          dr.mobileNo = mobileNo;
          dr.Adress = Adress;
          dr.dob = dob;
         var Record = JSON.stringify(dr);

          $.ajax({
              type: "POST",
              url: "doctorRecord.asmx/Save_Update_Doctor",
              data: Record,
              contentType: "application/json",
              dataType: "json",
              success: function (data) {
                  alert("successfully saved");
              },
              error: function (result) {
                  //alert("Error login");
              }
          });

      }

  };

我的 WebService.asmx 代码是

    [WebMethod]
    public  object  Save_Update_Doctor(Doctor_Business.Model.Doctor info)
    {

  //code here
   return "something"
    }

我的 JSON 数据发布是

  "{"phoneNo":"jsmith","mobileNo":"AC101","Adress":"2817 S 49th'nApt 314'nSan Jose, CA 95101","dob":"24-01-2016"}"

错误是

  Request format is unrecognized for URL unexpectedly ending in '/Save_Update_Doctor'.

http://localhost:62730/Forms/Theme/doctorRecord.asmx/Save_Update_Doctor 500(内部服务器错误)

我使用测试模式测试了网络服务,但运行成功,但是当我尝试从 HTML 页面调用任何 WEB 方法时.cs类返回 403 请求禁止,网络服务始终返回内部服务器 500

有什么问题,我有这个web.config文件,我应该添加什么更改或代码,请检查上面的代码并告诉?

 <?xml version="1.0" ?>

工作网络服务网址

 localhost:62730/Forms/Theme/doctorRecord.asmx?op=Save_Update_Doctor 

要使用的网址是这个

  localhost:62730/Forms/Theme/doctorRecord.asmx/Save_Update_Doctor

使用 ajax?500 内部服务器从 HTML 页面调用 Web 服务 POST 方法错误

web.config 中添加以下配置元素<system.web>

 <webServices>
        <protocols>
            <add name="HttpGet"/>
            <add name="HttpPost"/>
        </protocols>
    </webServices>

更新

还有一件重要的事情。为了使 asmx 脚本可以从客户端访问,我们需要包含

[ScriptService]

不要在 ajax 调用中串化数据,因为 jQuery 会为你做这件事。在这里,您将字符串发送到服务器,而不是 json 对象。

$.ajax({
  type: "POST",
  url: "doctorRecord.asmx/Save_Update_Doctor",
  data: Record,
  success: function(data) {
    alert("successfully saved");
  },
  error: function(result) {
    //alert("Error login");
  }
});

另外,您的网络服务似乎很奇怪。您的方法应该收到具有属性 phoneNo、mobileNo等的 XX 类对象。

public class Infos
{
    public string phoneNo = {get; set; };
    public string mobileNo = {get; set; };
    // ...
}
[WebMethod]
public  string  Save_Update_Doctor(Infos infos)
{
    // ...
}