1

我编写了一个支持 ajax 的网页,打算在我的 Wii 上使用。但是,ajax 似乎无法在 Wii 的 Opera 浏览器上运行。此页面适用于 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";
}

我的 Web 服务器日志中没有对 DefaultWebService.asmx 的调用,因此浏览器甚至没有尝试发出 ajax 请求。
是否有任何变通办法可以让这个在 Wii 上运行?谢谢!

4

3 回答 3

2

一个月后,我希望你找到了解决方案,但如果你还没有,我想帮忙。我写了一个非常基本的测试,就是这样:

<?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 版本中工作得很好(包括一些可能与 Wii 一致的早期 9.x 版本 - 我不确定最接近的桌面等效版本是什么)

于 2009-12-06T18:15:41.353 回答
0

对 ASP 不太熟悉 .. 是否需要对返回值进行 JSON 编码?或者“ [WebMethod]”会处理这个问题吗?试试这个:

return "\"hello there\"";
于 2009-10-22T21:46:02.413 回答
0

您是否尝试过更改发布的数据?这看起来与此处发布的问题相似(尽管显然不完全相同):Opera 中 POST 上的 jQuery 语法错误

于 2009-10-22T23:11:27.920 回答