2012-06-18 4 views
2

У меня возникли проблемы с добавлением функции ajax к существующему сайту asp.net 4. У меня есть и попытался создать WebMethod на странице ASPX, а также пытались ASMX, но в обоих случаях я получаю эту ошибку Unexpected token <ajax jQuery Ошибка asp.net Неожиданный токен <

это мой JQuery:

функция postAssets (datapm) {

 $.ajax({ 
      type: "POST", 
      timeout: 20000, 
      tryCount: 0, 
      retryLimit: 10, 
      url: "talk.asmx/HelloWorld", 
      data: "{}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (msg) { 
       console.log('success postAssets '+msg.d); 
      }, 
      complete: function (jqXHR, status) { 
       if (status == 'success' || status == 'notmodified') { 

        console.log('complete postAssets' + jqXHR.responseText); 
       } 
      }, 
      error: function (req, status, error) { 

       console.log('error postAssets'); 
      } 
     }); 
    } 

и это то, что в ASMX:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Services; 

/// <summary> 
/// Summary description for talk 
/// </summary> 
[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 talk : System.Web.Services.WebService { 

    public talk() { 

     //Uncomment the following line if using designed components 
     //InitializeComponent(); 
    } 

    [WebMethod] 
    public string HelloWorld() { 
     return "Hello World"; 
    } 

} 

Интересно, если мне не хватает каких-либо предметов WebConfig, или все, что встроен в ASP.NET 4 ?

<configuration> 
    <connectionStrings /> 
    <system.web> 
    <compilation debug="true" targetFramework="4.0" /> 
    <machineKey validationKey="BA5B68AB87AAEA30753960733E796568" decryptionKey="FAF15E4015737A7695D9761" validation="SHA1" /> 
    <authentication mode="Windows" /> 
    </system.web> 
    <system.webServer> 
    <modules runAllManagedModulesForAllRequests="true" /> 
    </system.webServer> 
</configuration> 
+0

Где вы принимаете ошибку? – David

ответ

2

Вы возвращаете JSON или разметку? Ваш вызов метода jQuery ajax() ожидает JSON, но если вы возвращаете разметку, которая начинается с символа <, я мог бы представить, что это бросает это исключение.

+0

Проблема решена сама по себе, NM –

0

Я думаю, проблема заключается в том, что вы объявляете свой тип Ajax как POST, а в своем ASP-контроллере вы объявляете HelloWorld() как WebMethods. Вот почему ваш аякс не может найти вашу функцию HelloWorld.

Попробуйте удалить эту строку:

[WebMethods] 

и посмотреть, если это работает.

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