javascript - 在 SenchaTouch 中为 Ext.data.Store 代理设置请求 header

标签 javascript mobile-safari iphone sencha-touch

我有一个数据存储,它从我服务器上的 JSON API 获取信息。当我在 WebKit/Chrome 中运行代码时,一切似乎都运行良好,但如果我将用户代理更改为 iPhone 4.1 等,则似乎 JSON 请求设置不正确。它不是发送获取 JSON 的请求,而是发送请求并获取 HTML 呈现的页面。

这是我定义的商店:

Product.ProductStore = new Ext.data.Store({
    model: 'Product',
    proxy: {
        type: 'ajax',
        url: '/admin/products.json',
        reader: {
            type: 'json',
            root: 'products'
        }
    },
    autoLoad: true,
    storeId: 'productStore',
    getGroupString: function(record){
        return record.get('vendor')[0];
    }
});

所以我真正想让这家商店做的是向/admin/products.json 发送一个请求,它在桌面上按预期工作。但是当我在我的模拟器甚至设备上运行它时,它似乎只是将请求发送到/admin/products 而返回 HTML。

有人建议这是一个 Rails 服务器问题,我需要为我的请求设置内容类型。问题是我该怎么做?

我已经尝试了以下方法,但它似乎也不起作用:

Product.ProductStore = new Ext.data.Store({
    model: 'Product',
    proxy: {
        type: 'ajax',
        url: '/admin/products.json',
            // Trying to set the headers for the request -- not working
        headers: {
            'Content-Type': 'application/json'
        },
        reader: {
            type: 'json',
            root: 'products'
        }
    },
    autoLoad: true,
    storeId: 'productStore',
    getGroupString: function(record){
        return record.get('vendor')[0];
    }
});

我能否简单地将 AJAX 请求替换为我自己的内容类型 header 设置正确的请求?如果是这样,是否有一些示例使用商店及其自己的自定义 AJAX 请求?

最佳答案

应该是

'Accept' : 'application/json'

Accept 是客户端用来告诉服务器它喜欢什么媒体类型的 header 。 Content-Type 是服务器作为响应的一部分发送的 header ,告诉客户端数据是什么。

关于javascript - 在 SenchaTouch 中为 Ext.data.Store 代理设置请求 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5313635/

相关文章:

javascript - 使用 javascript 管理命名窗口

tinymce - 如何在 iOS Safari 中为 TinyMCE 设置固定高度?

javascript - 移动浏览器(iPad/iPhone/iPod/Android)在连续更新图像时崩溃 javascript

iphone - 移动 Safari(iPad、iPod、iPhone)中的原生 HTML5 拖放?

iphone - OpenGL ES 中的自定义 View 过渡

javascript - 所有数据插入数据库后响应请求

javascript - 如何让 HTML 标签在 Angular.js 中工作?

javascript - 音乐盒问题

objective-c - 如何以 3d 圆形方式旋转 UIImageView?

iphone - 在 NSDateComponents 中,你怎么知道它是上午还是下午?