gpt4 book ai didi

jquery - 使用 JQuery 调用 WebMethod

转载 作者:行者123 更新时间:2023-12-03 22:17:28 25 4
gpt4 key购买 nike

我无法通过 JQuery 调用进入我的 Search WebMethod。也许有人可以帮助我指出正确的方向。

我还将所有内容打包到一个 zip 文件中,以防有人想仔细查看。

http://www.filedropper.com/jsonexample

谢谢瑞安

    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>JSON Example</title>
<script type="text/javascript" language="JavaScript" src="jquery-1.3.1.min.js"></script>

<script type="text/javascript" language="javascript">

function Search() {
var search = $("#searchbox").val();
var options = {
type: "POST",
url: "Default.aspx/Search",
data: "{text:" + search + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
alert('Success!');
}
};
$.ajax(options);
}
</script>

</head>
<body>
<form id="form1" runat="server">
<input type="text" id="searchbox" size="40" />
<a href="#" onclick="Search()" id="goSearch">Search</a>
<br />
<div id="Load" />
</form>
</body>
</html>

这是 default.aspx 背后的代码

 Imports System.Data
Imports System.Web.Services
Imports System.Web.Script.Serialization

Partial Class _Default
Inherits System.Web.UI.Page

<WebMethod()> _
Public Shared Function Search(ByVal text As String) As IEnumerable
Return "test"
End Function

End Class

最佳答案

要解决这样的问题,首先要做的是在 Firebug 中观察它。

如果您单击“搜索”链接并在 Firebug 控制台中观察 POST 请求/响应,您会看到它抛出 500 服务器错误:无效的 JSON 基元。

原因是“数据”JSON 文本中的键/值标识符没有被引用。第 17 行应该是:

data: "{'text':'" + search + "'}",

然后,一切都会按预期进行。

注意:建议的数据 { test: search } 将不起作用。如果您向 jQuery 提供实际的 JSON 文字而不是字符串,它会将其转换为 test=search 的键/值对,然后将其 POST 而不是 JSON。这还会导致 ASP.NET AJAX ScriptService 或 PageMethod 抛出 Invalid JSON Primitive 错误。

关于jquery - 使用 JQuery 调用 WebMethod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/563133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com