无法通过 JQuery 连接到 Web 服务

Posted

技术标签:

【中文标题】无法通过 JQuery 连接到 Web 服务【英文标题】:Can't connect to web service by JQuery 【发布时间】:2016-05-24 14:28:43 【问题描述】:

我使用 jquery (ajax) 连接到返回 string 的 Web 服务,它不适用于我。它总是进入错误函数。这是我的网络服务:

 [HttpGet]
        [ActionName("GetImage")]
        public string GetImage(string base64String, string imgName,string reqTitle , string reqSubject, string reqStatus,string Creator , DateTime creationdate )
        

            try
            
                using (PhMobAppEntities context = new PhMobAppEntities())
                
                    ClaimsApproval _ca = new ClaimsApproval();
                    _ca.imageBasestrg = base64String;
                    _ca.imageName = imgName;
                    _ca.Creator = Creator;
                    _ca.CreationTime = creationdate;
                    _ca.ReqStatus = reqStatus;
                    _ca.ReqTitle = reqTitle;
                    _ca.ReqSubject = reqSubject;
                    context.ClaimsApprovals.Add(_ca);
                    context.SaveChanges();
                    return "Success";
                

            
            catch (DbEntityValidationException ex)
            

                var errorMessages = ex.EntityValidationErrors
                        .SelectMany(x => x.ValidationErrors)
                        .Select(x => x.ErrorMessage);

                var fullErrorMessage = string.Join("; ", errorMessages);

                var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage);

                throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors);
            
        

这是我的 js 代码:

  $("#sendphoto").click(function () 
        var url = "http://41.128.183.109:1212/api/Data/GetImage";
        var data = 
           imgName: "test"
        ;
        $.ajax(
            url: url,
            type: 'Get',
            data: data,
            success: function (data) 
alert("Success");


            ,
            error: function (data) 
                alert("Please Check Your Internet Connection");
            
        );

    );

当我在高级休息客户端测试我的网络服务时,它运行正常,请指教。

【问题讨论】:

“不工作”是什么意思?是否调用了 Ajax 错误处理程序?您在浏览器的开发控制台中是否遇到任何错误?你确认你的服务器端代码是否被调用了吗? 它总是转到错误功能警报(“请检查您的互联网连接”); 好的,所以 jQuery 应该将有关错误的一些详细信息作为参数传递给您的错误处理程序。更新该函数以记录详细信息(查看 jQuery doco 了解更多信息)。 alert data 在错误函数中查看详细信息。 @MairajAhmad 当我收到警报数据时我得到 [object object] 【参考方案1】:

我尝试连接到您的网络服务并收到以下响应:

"$id":"1","Message":"No HTTP resource was found that matches the request URI 'http://41.128.183.109:1212/api/Data/GetImage'."

我认为您的 c# 代码存在内部问题,可能与您的路由有关。您的 javascript 调用可能工作正常,但您只传递了一个参数“test”,而您的声明中有更多参数。

你得到什么 http 响应代码?

【讨论】:

当我在高级休息客户端上测试我的网络服务时,它工作正常。并返回成功。我的回答是 [object object] 你能把你的通话样本放在这里吗?

以上是关于无法通过 JQuery 连接到 Web 服务的主要内容,如果未能解决你的问题,请参考以下文章

在 JBoss EAP 6.2 中无法通过 SSL 连接到 SOAP 服务

无法连接到已配置的web服务器

.Net Core ClientWebSocket:无法连接到服务器

连接到 Web 服务 - 令牌提供者无法获取目标令牌

Visual Studio 2017“无法连接到 Web 服务器 'IIS Express'”

无法连接到 Web 服务器“IIS Express”