javascript - 为什么 WP7 WebBrowser InvokeScript 调用会抛出错误 : 80020101?

标签 javascript jquery ajax silverlight windows-phone-7

这个错误似乎是由于调用的 javascript 函数中出现的任何错误而引发的:

SystemException was unhandled    
An unknown error has occurred. Error: 80020101.

我使用 javascript 作为 Web 应用程序后端的接口(interface),我有两个工作正常的调用,从 ajax 调用加载和返回 JSON,看起来像这样:

在 Silverlight 中:

MyBrowser.InvokeScript("getData", "/Me/Feed?numberOfResults=-1", "MyFeed");

加载到 WebBrowser 中的 Javascript

function getData(url, context) {
    $.ajax({
        url: url,
        dataType: 'jsonp',
        success: function (result) {
            callback(result, context);
        }
    });
}

但后来我想将数据回发到服务器,我也在做同样的事情:

MyBrowser.InvokeScript("postData", "thedata", "CreatePost");

function postData(payload, context) {
    $.ajax({
        type: "POST",
        url: "/Post/Create?" + tz(),
        data: payload,
        dataType:"json",
        success:function (result) {
            callback(result, context);
        }
    });
}

现在我得到了异常。

真正奇怪的是,我可以立即从脚本中调用函数,并将它发送到后端就好了。

postData("sampledata", "PostTest");

起初似乎唯一的区别是一个是 GET 而另一个是 POST,所以我将 GET ajax 调用复制到第二个调用(发生在用户输入时,第一个发生在加载时)。结果是一样的(我得到了同样的错误)。只要它们不包含 ajax 调用(它出现),我就可以让其他命令从此事件中触发 javascript。所以您可能认为这是一个时间问题 - 所以我将调用移到上面我调用其他正在工作的 InvokeScripts 的地方,但它仍然不起作用(相同的异常)。

我还尝试在一个单独的线程上调用它,使用 Dispatcher.BeginInvoke 进行良好的衡量,没有骰子。

Dispatcher.BeginInvoke(() =>
{
    MyBrowser.InvokeScript("postData", "thedata", "CreatePost");
});

我完全不知所措。似乎确实存在某种一致性,因为如果调用失败,它每次都会失败,但我无法分辨有效调用和失败调用之间的区别。

谁能告诉我我做错了什么,或者我不明白同时使用 InvokeScript 和 Ajax 的地方是什么?

谢谢!

[编辑 - 添加这个内联(在评论中)因为我经常收到这个问题]

我已经为此工作了 6 个小时,这就是我所看到的:

  • 我从两个不同的事件中发起这些调用; 1) 当浏览器控件上的页面加载完成时,2) 当用户点击我的“发布”按钮时
  • 当 Ajax 调用是来自加载事件的 GET 时,不会发生错误
  • 从用户事件调用相同的 GET 调用时确实会发生错误
  • 在加载事件中使用 POST 调用 Ajax 时也会发生错误
  • 调用不尝试从用户事件中获取任何 Ajax 的函数时不会发生错误

最佳答案

如果找不到 javascript 方法或 JS 抛出错误,您将收到 80020101 错误。

在查找方法方面,控件将与签名完全匹配。这不是标准的 javascript 行为,所以要小心。

当心在浏览器控件中缓存页面(及其内容),因为这会吸引很多人。 :(

关于javascript - 为什么 WP7 WebBrowser InvokeScript 调用会抛出错误 : 80020101?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5428383/

相关文章:

javascript - 在 JavaScript Canvas 的 2D 上下文中使用多个 Canvas 来实现撤消/重做的缺点?

javascript - Controller 无法在 ajax 响应中返回 JSON 对象结果

javascript - Jquery 游戏人与计算机需要一个重置按钮

javascript - jquery css 函数不适用于检测显示/隐藏的元素

javascript - 无论我如何在ajax中编写url,响应总是成功

javascript - React JS + React Router 可以使用 $.get 但不能使用 $.ajax PUT

javascript数组索引问题!

javascript - 在 native 浏览器获取中设置授权

javascript - 在保存到本地存储之前,如何修改我得到的 json 响应,使其看起来像这样

javascript - 如何从 ajax url 调用带有 _remap 函数的 Codeigniter 函数?