【问题标题】:Pass And Return A String Into VB.NET Web Method将字符串传递并返回到 VB.NET Web 方法
【发布时间】:2013-01-31 17:04:30
【问题描述】:

我正在尝试使用 AJAX 从 Javascript 向 VB.NET Web 方法发送和返回一个简单的字符串。这是我正在使用的 Javascript/jQuery 脚本:

function jQuerySerial() {
//I SET A VARIABLE TO THE STRING I WANT TO PASS INTO MY WEB METHOD
var str = "Hello World";

//AND TRY TO PASS IT INTO MY VB.NET WEB METHOD
$.ajax({
    type: "POST",
    url: "test_WebService.asmx/testWebService",
    data: str,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (e) {
        alert("It worked: " + e);
    },
    error: function (e) {
        alert("There was an error retrieving records: " + e);
    }
});
}//END jQuerySerial

这是非常简单的 VB.net Web 方法。 Web 方法除了获取字符串然后将其传回 Javascript 之外什么都不做:

   <WebMethod( )> _
Public Function testWebService(str As String) As String
    Return str
End Function

当我尝试运行此错误时:函数触发并返回一条消息:

"There was an error retrieving records: [object Object]"

我在同一个 Web 服务类中还有很多很多其他的 Web 方法来操作数据库记录,它们都可以工作。但是,这是我第一次尝试使用 $.ajax 语法编写并向调用 Javascript 返回一些内容,所以我完全不知道这里出了什么问题。

任何有关如何使这项工作的建议将不胜感激。谢谢

【问题讨论】:

  • 为了帮助您调试 JS,请在您的 successerror 函数中尝试 console.log(e) 而不是 alert。因为 $.ajax() error 处理程序被触发,所以可以安全地假设错误在于 JS - 在发送之前尝试将您的字符串更改为有效的 json(即:str = {"hello":"world"}
  • 感谢@WillemLabu 的意见。我接受了您的意见以及 Joshua Whitley 提供的链接中的信息并解决了问题。我非常感谢您的帮助。我会尽快发布我使用的解决方案。
  • 很高兴我能帮上忙。 :{D

标签: javascript ajax vb.net


【解决方案1】:

看起来这里的问题是当它需要一个 JSON 对象时,您将一个简单的字符串传递给 Web 服务。有关 jQuery 和 ASP.NET Web 服务的常见问题(特别是第 2 项),请参阅这篇文章:

http://encosia.com/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax/

【讨论】:

  • 谢谢约书亚。使用您提供的链接,我将输入字符串从: var str = "Hello World"; to: var str = "{ 'str': 'hello world'}";现在函数成功返回。现在我收到一条消息:“它起作用了:[object Object]”。您知道我如何读取返回的对象以便将其解析回字符串吗?谢谢
  • @Slaks 回答了我关于如何使用响应对象的第二个问题。 ASP.Net WebMethods 将它们的返回值包装在一个带有 d 属性的 JSON 对象中。 (你可以在浏览器的开发者工具的响应正文中看到这个)你需要编写 e.d 来获取实际值。谢谢
猜你喜欢
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
  • 2020-09-02
  • 2018-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多