2014-01-14 1 views
0

У меня есть сценарий JS:Вызов страницы ASP.NET из JS и отправки ответа

$.ajax({ 
     type: "GET", 
     url: ServiceAddress + "/Service.aspx?action=LoadRandomImagePath&userID=" + USER_ID, 
     success: function (result) { 
      if (result.LoadRandomImagePathResult.ID != 0) { 
     //something 
     } 

Когда Service.aspx называется:

Response.Write(svc.LoadRandomImagePath(int.Parse(Request.QueryString["userID"]))); 

svc.LoadRandomImagePath возвращает JSON и записывает его в Отклик.

Моя проблема следующая. Результат на JS стороне полный код Service.aspx:

{JSON HERE} 
<!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><title> </title></head> <body> <form method="post" action="Service.aspx?action=LoadRandomImagePath&amp;userID=18" id="form1"> <div class="aspNetHidden"> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE2MTY2ODcyMjlkZLyq7A39QtHu0Ngft6E/6ZwTABk29noGDsoP6FKK6UIo" /> </div> <div> </div> </form> </body> </html> 

но то, что я хочу, это только ответ JSON, без кода страницы. Как я могу это сделать? Является ли это возможным?

ответ

1

Вы пытались указать тип возвращаемых данных как JSON в своем первоначальном запросе?

$.ajax({ 
     type: "GET", 
     dataType: "json", 
     url: ServiceAddress + "/Service.aspx?action=LoadRandomImagePath&userID=" + USER_ID, 
     success: function (result) { 
      if (result.LoadRandomImagePathResult.ID != 0) { 
     //something 
} 

Кроме того, вы хотите, чтобы очистить все, что написано уже и изменить тип данных для страницы JSON:

Response.Clear(); 
Response.ContentType = "application/json; charset=utf-8"; 
Response.Write(svc.LoadRandomImagePath(int.Parse(Request.QueryString["userID"]))); 
Response.End(); 
+0

Благодаря richieahb! Похоже, это работает! Большое спасибо :) – mashet

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