Azure移动服务javascript SDK在Firefox中不起作用

丹尼尔

我有一个用C#编写的简单Azure移动服务后端,该后端具有登录功能/api/CustomLogin以下功能是我使用Javascript针对访问这些数据的Web应用进行的简单登录测试:

var client = new WindowsAzure.MobileServiceClient(
    URL,
    API_KEY
);

function tryLogin(username, password) {
    client.invokeApi("CustomLogin", {
        body: {
            username: username,
            password: password
        },
        method: "post"
    }).done(function (results) {
        alert(JSON.stringify(results));
    }, function (err) {
        alert("Error: " + err);
    });
}

这在Chrome 37和Internet Explorer 11上可以正常工作,并返回带有正确状态码和身份验证令牌的JSON对象。但是,当我在Firefox 32上运行此测试时,它将返回一个空对象{},这意味着我没有收到用户信息。我正在使用http://ajax.aspnetcdn.com/ajax/mobileservices/MobileServices.Web-1.2.2.min.js中的Azure移动服务SDK

我已经使用Http和https(由Azure提供)在localhost和已部署的网页(也由Azure网站托管)上对此进行了测试,并且该功能在Chrome和Internet Explorer上有效,但在Firefox中不起作用。

例如,Mobile Service API中的其他功能可在Firefox中使用

var peopleTable = client.getTable('people');
var query = peopleTable.read().done(function (results) {
    alert(JSON.stringify(results));
}, function (err) {
    alert("Error: " + err);
});

这使我怀疑存在问题,invokeApi但我不明白为什么仅在Firefox中会出现此问题。

卡洛斯菲盖拉

这里的问题是,在.NET后端中,默认情况下启用了内容协商-客户端可以要求服务“偏爱”哪种内容类型(通过Accept标头)来响应该服务在大多数浏览器中,客户端请求将说它“接受”所有内容,.NET后端中使用的“首选”格式化程序是一种将对象在线转换为JSON的格式化程序。

但是,Firefox发送的Accept标头表明它更喜欢接收XML后端很乐意为您服务,您的API调用将收到该服务发送的XML响应。您甚至可以查看responseText响应属性并在那里查看。

function tryLogin(username, password) {
    client.invokeApi("CustomLogin", {
        body: {
            username: username,
            password: password
        },
        method: "post"
    }).done(function (response) {
        alert(response.responseText);
    }, function (err) {
        alert("Error: " + err);
    });
}

现在,如果您不想处理XML(我也不会怪您),则有两个选择:在服务器端,从服务器具有的格式化程序列表中删除XML格式化程序。在WebApiConfig上,以下代码可以解决问题:

config.Formatters.Remove(config.Formatters.XmlFormatter);

或者,您可以通过在调用API时直接传递它来覆盖firefox发送的Accept标头:

function tryLogin(username, password) {
    client.invokeApi("CustomLogin", {
        body: {
            username: username,
            password: password
        },
        method: "post",
        headers: { Accept: 'application/json' }
    }).done(function (response) {
        alert(JSON.stringify(response.result));
    }, function (err) {
        alert("Error: " + err);
    });
}

完成此操作后,您将在result成功回调的参数属性中获得API的结果

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Javascript代码在Firefox中不起作用

来自分类Dev

Javascript下载在Firefox和IE中不起作用

来自分类Dev

Javascript-onerror事件在Firefox中不起作用

来自分类Dev

为什么此Javascript在Firefox中不起作用?

来自分类Dev

显示div框在Firefox中不起作用的Javascript代码

来自分类Dev

JavaScript日期功能在Firefox中不起作用

来自分类Dev

Javascript form.submit()在Firefox中不起作用

来自分类Dev

javascript()onclick隐藏元素-在Firefox中不起作用

来自分类Dev

Javascript在Firefox和IE / Edge中不起作用

来自分类Dev

Javascript按键事件在Firefox中不起作用

来自分类Dev

javascript input.focus()在Firefox 23中不起作用

来自分类Dev

ASP.NET和Javascript在Firefox中不起作用

来自分类Dev

javascript()onclick隐藏元素-在Firefox中不起作用

来自分类Dev

Javascript:链接标记'a'stopPropagation()在Firefox中不起作用

来自分类Dev

Javascript Ctrl +单击在Firefox中不起作用

来自分类Dev

动画中的Javascript淡入在Firefox或Chrome中不起作用

来自分类Dev

JavaScript在Internet Explorer和Firefox中不起作用,但在Google中起作用

来自分类Dev

通过javascript制作路线谷歌地图时,它在chrome中不起作用,但在firefox中起作用

来自分类Dev

适用于Node JS的Azure SDK在Azure辅助角色中不起作用

来自分类Dev

Azure:SDK生成的共享访问签名在浏览器中不起作用

来自分类Dev

Android Azure 通知中心 SDK 在 Android Pie 中不起作用

来自分类Dev

DeleteAsync方法在Azure人脸识别服务中不起作用

来自分类Dev

ionicGestures在移动设备中不起作用

来自分类Dev

ionicGestures在移动设备中不起作用

来自分类Dev

pygame 中的移动图像不起作用

来自分类Dev

使用Blob在JavaScript中使用Excel导出在FireFox中不起作用

来自分类Dev

Firefox中的touchstart处理程序的preventDefault()不起作用-纯Javascript

来自分类Dev

nuget软件包更新后,azure移动服务.net后端不起作用

来自分类Dev

计算属性在服务中不起作用

Related 相关文章

  1. 1

    Javascript代码在Firefox中不起作用

  2. 2

    Javascript下载在Firefox和IE中不起作用

  3. 3

    Javascript-onerror事件在Firefox中不起作用

  4. 4

    为什么此Javascript在Firefox中不起作用?

  5. 5

    显示div框在Firefox中不起作用的Javascript代码

  6. 6

    JavaScript日期功能在Firefox中不起作用

  7. 7

    Javascript form.submit()在Firefox中不起作用

  8. 8

    javascript()onclick隐藏元素-在Firefox中不起作用

  9. 9

    Javascript在Firefox和IE / Edge中不起作用

  10. 10

    Javascript按键事件在Firefox中不起作用

  11. 11

    javascript input.focus()在Firefox 23中不起作用

  12. 12

    ASP.NET和Javascript在Firefox中不起作用

  13. 13

    javascript()onclick隐藏元素-在Firefox中不起作用

  14. 14

    Javascript:链接标记'a'stopPropagation()在Firefox中不起作用

  15. 15

    Javascript Ctrl +单击在Firefox中不起作用

  16. 16

    动画中的Javascript淡入在Firefox或Chrome中不起作用

  17. 17

    JavaScript在Internet Explorer和Firefox中不起作用,但在Google中起作用

  18. 18

    通过javascript制作路线谷歌地图时,它在chrome中不起作用,但在firefox中起作用

  19. 19

    适用于Node JS的Azure SDK在Azure辅助角色中不起作用

  20. 20

    Azure:SDK生成的共享访问签名在浏览器中不起作用

  21. 21

    Android Azure 通知中心 SDK 在 Android Pie 中不起作用

  22. 22

    DeleteAsync方法在Azure人脸识别服务中不起作用

  23. 23

    ionicGestures在移动设备中不起作用

  24. 24

    ionicGestures在移动设备中不起作用

  25. 25

    pygame 中的移动图像不起作用

  26. 26

    使用Blob在JavaScript中使用Excel导出在FireFox中不起作用

  27. 27

    Firefox中的touchstart处理程序的preventDefault()不起作用-纯Javascript

  28. 28

    nuget软件包更新后,azure移动服务.net后端不起作用

  29. 29

    计算属性在服务中不起作用

热门标签

归档