从 ajax 调用 webservice asmx 返回 404 错误

Posted

技术标签:

【中文标题】从 ajax 调用 webservice asmx 返回 404 错误【英文标题】:Calling webservice asmx from ajax returns 404 error 【发布时间】:2022-01-10 01:24:51 【问题描述】:

我有一个 .asmx 文件,我从 webforms 页面上的 jquery ajax 调用调用该文件。返回的响应是 404 错误。我不确定自己做错了什么,因为我已经尝试了所有找到的示例,但没有任何效果。

AJAX:

function clearTemp(_websiteID) 
        $.ajax(
            type: "POST",
            url: "ScheduleImportWebService.asmx/HelloWorld",
            contentType: "application/json; charset=utf-8",
            data: JSON.stringify( websiteID: _websiteID ),                
            dataType: "json",
            success: function (response) 
                alert(response.d);                   
            ,
            failure: function (response) 
                alert("Failure: Could not clear temp table: " + response.d);
            ,
            error: function (response) 
                alert("Error: Could not clear temp table: " + response.d);
            
        );
    

ASMX Snippet:(我已经尝试将 [System.Web.Script.Services.ScriptService] 注释掉,但仍然得到相同的响应)

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService]
public class ScheduleImportWebService : System.Web.Services.WebService


    [WebMethod]
    public string HelloWorld(string websiteID)
    
        return "Hello World";
    

【问题讨论】:

【参考方案1】:

错误是因为您忘记在 ajax 调用的 URL 中设置主机。

试试这样的:

http://localhost/ScheduleImportWebService.asmx/HelloWorld

【讨论】:

以上是关于从 ajax 调用 webservice asmx 返回 404 错误的主要内容,如果未能解决你的问题,请参考以下文章

Jquery ajax调用webservice总结

ajax 调用 webService

jquery中通过ajax调用webservice传递数组参数的问题

使用 ajax() 和 jsonp 调用 asp.net 远程 Web 服务 .asmx 时出现意外令牌 <

WebService-asmx后缀接口调用

无法从 .net 中的 Ajax 调用 .asmx Web 服务