我正在使用谷歌浏览器,我注意到每次执行XHR请求时,我都会在请求中添加以下标头:
Cache-Control: no-cache
Pragma: no-cache
Run Code Online (Sandbox Code Playgroud)
如果您阅读http://www.w3.org/TR/XMLHttpRequest/上的规范,则说明以下内容
如果用户代理实现HTTP缓存,则它应该尊重作者请求头中的Cache-Control头(例如,Cache-Control:no-cache绕过缓存).除非最终用户明确请求此类行为(例如,通过重新加载页面),否则它不能自动发送Cache-Control或Pragma请求标头.
好吧,我正在尝试以下方法:
$.ajax(myUrl, {
type: 'get',
dataType: 'json'
cache: true,
headers: {
'Cache-Control': 'max-age=200'
}
})
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我明确地设置了Cache-Control标头,希望获得我的资源的缓存副本.好吧Chrome似乎忽略了Cache-Control标头.
Cache-Control: no-cache在发出XHR请求时是否可以不发送标头?
我有popup.html,当点击浏览器操作加载弹出窗口时调用popup.js.我在那里以编程方式注入内容脚本chrome.tabs.executeScript().我需要在页面的主体上添加一个元素.如何在扩展中插入来自不同.html文件的HTML代码,因为这样维护代码要容易得多.我想在popup.js中访问它(是否有一些API调用?)然后在code属性内插入带有检索到的HTML代码字符串的内容脚本代码.
我看到了一些使用XMLHttpRequest内容脚本的方法,但有没有避免这种情况?我尝试过chrome.fileSystem,但那是Chrome应用而不是扩展.
我有一个定期的宁静模型,我得到,创建,删除和更新.最重要的是,我想对该模型进行特殊操作,例如change_password.
常规RESTful路由是传统的Rails 3路由:
fetch => GET /api/models/:id
save => PUT /api/models/:id
create => POST /api/models
destroy => DELETE /api/models/:id
Run Code Online (Sandbox Code Playgroud)
但是,除此之外,我还有特殊的操作:
changePassword => GET /api/models/:id/change_password
activate => GET /api/models/:id/activate
Run Code Online (Sandbox Code Playgroud)
等等.
我需要在模型上设置什么,以便识别这些新操作,以及如何将调用包装到模型方法中?
我有一个chrome扩展,可以将大量数据保存到chrome.storage.local.我正在尝试找到导出此数据并将其打包到文件中的简单方法.我并不局限于它是什么类型的文件(JSON,CSV,等等),我只需要能够将内容导出到独立(和可发送)文件中.扩展仅在本地运行,用户可以访问所有本地文件.
根据chrome扩展API,如果设置了权限,则应允许使用XMLHttpRequest对象进行跨域调用:
扩展可以与其来源之外的远程服务器通信,只要它首先请求跨源权限即可.
我正在密切关注本教程,但下面的代码给出了一条错误消息:
XMLHttpRequest无法加载http://www.google.com/search?hl=en&q=ajax.原始chrome-extension:// bmehmboknpnjgjbmiaoidkkjfcgiimbo不允许使用Access-Control-Allow-Origin.
我不仅允许google.com的请求,而且要求任何网站但仍然无法通过.有人可以帮忙吗?
我的清单文件:
{
"name": "The popup",
"version": "0.1",
"popup": "popup.html",
"permissions": [
"http://*/*",
"https://*/*",
"https://www.google.com/*",
"http://www.google.com/*"
],
"browser_action": {
"default_icon": "clock-19.png",
"default_title": "This is title",
"default_popup": "popup.html"
}
}
Run Code Online (Sandbox Code Playgroud)
实际的电话:
function sendRequest() {
document.write("Sending request");
var req = new XMLHttpRequest();
req.open("GET", "http://www.google.com/search?hl=en&q=ajax", true);
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
alert(req.responseText);
document.write("OK");
}
}
};
req.send();
}
Run Code Online (Sandbox Code Playgroud) javascript ajax google-chrome xmlhttprequest google-chrome-extension
使用的Google Chrome扩展程序manifest_version: 2限制使用eval或new Function.我检查的所有JavaScript模板库(mustachejs,underscorejs,jQuery模板,hoganjs等)都使用new Function.有没有相当成熟和支持不使用?
我需要在使用javascript或PHP关闭浏览器窗口之前显示确认对话框.当我点击浏览器的关闭按钮时,应该出现确认框.其他明智的不显示对话框.请帮帮我.
例如,当您单击下拉列表中的浏览器图标时,Adblock会有一个"关闭"选项.
我希望用户能够打开/关闭域的扩展名,而不必禁用它来关闭它.
另一种选择可能是在网页布局上放置一个静态按钮,并打开/关闭扩展或样式表.
所以我正在编写一个Web应用程序,需要在离线Web SQL数据库中存储大约40MB的离线数据.它需要在Chrome(桌面),Safari(桌面和移动设备)和Android浏览器中运行.现在我知道这些浏览器支持Web SQL,我知道哪个版本,但我需要知道允许多少存储空间.Safari桌面支持500MB的数据库存储.Safari mobile支持50MB的数据库存储.
然而,我花了几个小时在各处搜索,以找出什么空间镀铬桌面支持和Android浏览器支持但没有找到任何具体的东西.其中一个地方指出镀铬台式机的硬盘限制为5MB,而另一个地方则指出镀铬台式机的限制为25MB(不使用镀铬扩展).Android浏览器的一个来源注意到15MB的限制另一个注意到5MB的限制.任何人都可以指向某个地方,说明Web SQL存储的实际硬限制是什么,适用于android和chrome?
我希望能够专注于特定的选项卡.
在chrome.tabs.query我得到之后,我id如何将焦点设置在该标签上?我在文档中没有看到此选项.