2013-09-27 3 views
0

У меня есть класс HttpListenerContext, что всегда прислушиваются к порту 13001. когда-либо Ajax вызов приходит я передаю данные следующим образомJQuery Ajax Получение ответа, но всегда вызов функция ошибки JSONP

context.Response.Close(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject("jsonp({'Status':'Good'})")), false); 

Далее я вызывающий что сервер с помощью Jquery Ajax следующего

$.ajax({ 
     url: "http://localhost:<13001>/hit/number', 
     type: "GET", 
     async: false, 
     contentType: "application/json", 
     dataType: "jsonp", 
     jsonp: "jsonp", 

     success: function (data, textStatus, xhr) { 
      console.log(data); 
     }, 

     error: function (xhr, ajaxOptions, thrownError) { 
      console.log("Error"); 
     } 
    }); 

Ajax Получить запрос получения успеха, я могу видеть отклик в Chrome Сеть-> вкладку Response следующего

"jsonp({"Status":"Good"})" 

Но я не могу получить это сообщение в функции Ajax Success. Он всегда показывает ошибку. Может кто-нибудь скажет мне, где я ошибся.

Response Headers 

Access-Control-Allow-Origin:* 
Cache-Control:private 
Content-Length:23 
Content-Type:application/javascript 
Date:Fri, 27 Sep 2013 01:12:25 GMT 
Server:Microsoft-HTTPAPI/2.0 

ответ

0

Моя кишка говорит мне, что вы не передаете полный HttpResponse. Вы просто передаете текстовую строку. Поскольку это недействительный HttpResponse, jQuery собирается подумать, что это не сработало.

Решение: попробуйте добавить context.Response.StatusCode = 200;, прежде чем отправлять ответ. Возможно, вам потребуется добавить тип контента, а также ответ.

context.Response.StatusCode = 200;     
context.Response.Close(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject("jsonp({'Status':'Good'})")), false); 
0

Тот же вопрос, я столкнулся со службой OData, ее фиксируется путем добавления «$ обратного вызова» ключевое слово на конце URL. Таким образом, URL-адрес ajax будет выглядеть как https://example.com/ApplicationData.svc/Products? $ Format = json & $ callback =?

любезность: http://www.kendoui.com/blogs/teamblog/posts/11-08-24/cross-domain_queries_to_odata_services_with_jquery.aspx

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