0

あるアプリケーションで Web サービスを作成しました。別の Web サイトでそれを使用する必要があります。jquery を使用して「webservicename.asmx/getInventoryForWs」のような URL を提供するなど、Web サービスが同じアプリケーション内にある場合の方法を知っています。私のjquery呼び出しコードは

     $.ajax({
            type: "POST",
            url: "http://localhost/DashboardUI/Reports/Marketing/AUSUWs.asmx/getInventoryForWs",
            contentType: "application/json; charset="utf-8",
            dataType: "jsonp",
            success: function (ret) {
                alert('success');
            },
            error: function (httpRequest, textStatus, errorThrown) {
                alert("status=" + textStatus + ",error=" + errorThrown);
            }
        });    

これが私のvb.net Webサービスコードです

Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Web.Script.Services

' To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the       
following line.
<System.Web.Script.Services.ScriptService()> _
<WebService(Namespace:="http://microsoft.com/webservices/")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class AUSUWs
Inherits System.Web.Services.WebService

<WebMethod()> _
<ScriptMethod(ResponseFormat:=ResponseFormat.Json)> _
Public Function getInventoryForWs() As String
    Try
        Dim a As New AUSUReport
        Dim dt As DataTable = a.getInventoryForWs().Tables(0)
        Return (GetJson(dt))
    Catch ex As Exception
        Throw ex
    End Try
End Function
Public Function GetJson(ByVal dt As DataTable) As String
    Dim serializer As New System.Web.Script.Serialization.JavaScriptSerializer()
    Dim rows As New List(Of Dictionary(Of String, Object))()
    Dim row As Dictionary(Of String, Object) = Nothing

    For Each dr As DataRow In dt.Rows
        row = New Dictionary(Of String, Object)()
        For Each col As DataColumn In dt.Columns
            row.Add(col.ColumnName.Trim(), dr(col))
        Next
        rows.Add(row)
    Next
    Return serializer.Serialize(rows)
End Function
End Class

誰でもこれで私を助けることができますか?

4

1 に答える 1

0

この部分は二重スラッシュでは正しくないと思います:

 url: "http://somewebsite.com//
       DashboardUI/Reports/Marketing/AUSUWs.asmx/getInventoryForWs", 

これを試して:

 url: "http://somewebsite.com/
       DashboardUI/Reports/Marketing/AUSUWs.asmx/getInventoryForWs", 

編集:

「dataType は受信するもののタイプである必要がありますが、contentType は送信するものの MIME タイプである必要があります。以下は問題ありません」

JQuery.ajax({ 
    type: "POST", 
    url: "http://somewebsite.com/DashboardUI/Reports/Marketing/AUSUWs.asmx/getInventoryForWs",       
    dataType: "json", 
    success: function (ret) { 
              $(ret).find("Table").each(function () 
               { 
                   alert('success'); 
                   // $('#').val($(this).find('').text());
                });
        },
        error: function (httpRequest, textStatus, errorThrown) {
            alert("status=" + textStatus + ",error=" + errorThrown);
        }
    });

ここに詳細なチュートリアルがあります。ここのようにすべてを正確に行うと、問題は発生しません: Web サービスでの jQuery の使用の概要 (VB.Net)

于 2013-07-04T06:28:07.630 に答える