2013-07-07 3 views
0

мне нужно сделать вызов на веб-метод, который определен в этом классеВызов C# WebMethod из Ajax

<%@ WebService Language="C#" Class="emt7anReyady.myService" %> 

using System; 
using System.Web; 
using System.Web.Services; 
using System.Web.Services.Protocols; 
using System.Linq; 
using System.Web.Security; 

namespace emt7anReyady 
{ 
    [WebService(Namespace = "http://tempuri.org/")] 
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    [System.Web.Script.Services.ScriptService] 
    public class myService : System.Web.Services.WebService 
    { 
     [WebMethod] 
     [System.Web.Script.Services.ScriptMethod] 
     public void test() 
     { 
      Context.Response.Redirect("http://www.google.com"); 
     } 
    } 
} 

и я сделать вызов Ajax как этот

function getData() { 
       $.ajax({ 
        type: "POST", 
        url: "myService.asmx/test", 
        data: "{}", 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function() { 
         alert("succesed") 
        }, 
        failure: function() { 
         alert("faild") 
        } 
       }); 
      } 


проблема, что вызов провалился, и в консоли хром я получаю это !! Error Image

+0

Пробовали ли вы положить; в конце вашего предупреждения. Также, пожалуйста, укажите ошибку, потому что на изображении ее легко прочитать. Еще одно предложение, используйте одинарные кавычки вместо двойного в вашем аякс-вызове. – rach

+0

вот в чем проблема: ошибка не читаема и для; ничего не изменили! –

ответ

1

Вы получаете ответ ThreadAbort за счет использования Response.Redirect.

Это не совсем понятно, что вы пытаетесь достичь с помощью этого кода - если вы хотите проксирования без проксирования какого-либо другого сайта, вы должны читать и вперед ответ ...

+0

Мне нужно сделать логин, а затем перенести на локальную страницу, например, на «Спасибо.aspx», но я получил ту же ошибку –

0

Это из-за Response.Redirect вы используете в вашем WebMethod. Если вы действительно хотите перенаправить на другую страницу, сделайте это из блока успеха.

. 
. 

success: function() { 
        window.open('http://www.google.com'); 
       }, 
. 
. 

вы также можете использовать document.location вместо window.open

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