Opera, Wii, Ajax, Jquery и asp.net - PullRequest
       33

Opera, Wii, Ajax, Jquery и asp.net

1 голос
/ 23 октября 2009

Я написал веб-страницу с поддержкой ajax, предназначенную для использования на моем Wii. Тем не менее, Ajax не работает в браузере Opera Wii. Эта страница работает в IE, Chrome и FF, но не в Safari или Opera. Вот мой тестовый вызов jQuery ajax:

$.ajax({
    type: "POST",
    url: "DefaultWebService.asmx/Hello",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(msg) { alert(msg.d); },
    error: function() { alert("error in DefaultWebService.asmx/Hello"); }
});

Вот мой тестовый метод веб-сервиса:

[WebMethod]
public string Hello()
{
    return "hello there";
}

В журналах моего веб-сервера нет вызовов DefaultWebService.asmx, поэтому браузер даже не пытается выполнить ajax-запрос.
Есть ли какие-либо обходные пути, чтобы заставить это работать на Wii? Спасибо!

Ответы [ 3 ]

2 голосов
/ 06 декабря 2009

через месяц, надеюсь, вы нашли решение, но если нет, я бы хотел помочь. Я написал довольно простой тест, просто так:

<?php
    if( $_SERVER['REQUEST_METHOD']=='POST' ){
        echo file_get_contents('php://input');
        exit;
    }
?>
    <script src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.js"></script>
    <script type="text/javascript">
    $.ajax({
    type: "POST",
    url: location.href,
    data: '{"test":"passed" }',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(msg) { alert(msg.test); },
    error: function() { alert("error while testing"); }
});
    </script>

, но он отлично работает в версиях Opera, в которых я пробовал (включая некоторые ранние версии 9.x, которые могут быть выровнены с Wii - хотя я не уверен, что ближайший настольный эквивалент)

0 голосов
/ 23 октября 2009

Вы пытались изменить публикуемые данные? Это похоже (хотя и явно не идентично) на проблему, опубликованную здесь: Синтаксическая ошибка jQuery на POST в Opera

0 голосов
/ 23 октября 2009

Не слишком знаком с ASP .. может быть, вам нужно JSON кодировать возвращаемое значение? Или "[WebMethod]" позаботится об этом? Попробуйте это:

return "\"hello there\"";
...