2013-07-04 2 views
0

Я создал веб-сервис в одном приложении. Теперь мне нужно его использовать на моем другом веб-сайте. Я знаю, как это можно сделать, если веб-служба находится в том же приложении, что и предоставление URL-адреса, такого как «webservicename» .asmx/getInventoryForWs ", используя jquery. мой JQuery код вызоваВнешний вызов webservice с использованием 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 вебсервис

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 

может кто-нибудь помочь мне с этим?

+0

использовать JSONP из запросов Междоменных AFAIK – Satya

+0

, если вы не возражаете Пожалуйста, вы можете дать мне exmple я новичок в этом .THANKS заранее –

+0

Go? через [this] (http://stackoverflow.com/a/6879276/309395) Пример JSONP –

ответ

0

Я думаю, что эта часть не является правильным с двойным slahes:

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

Попробуйте это:

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

Edit:

«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); 
     } 
    }); 

Вот подробное руководство по прохождению. Делайте все точно так, как здесь, и вы не будете иметь проблемы: Introduction to using jQuery with Web Services (VB.Net)

+0

Я тоже это пробовал. Это не проблема –

+0

вы отправляете свои данные в xml для службы, и вы получите ответ в json? – speti43

+0

ya, мне нужно загрузить некоторые данные из моего внешнего веб-сервиса. У вас есть какое-то решение? –

Смежные вопросы