基于这个问题:jQuery代码无法在IE中运行
因此text/javascript在HTML文档中使用,因此Internet Explorer可以理解它.但我想知道,你什么时候使用application/javascript,更重要的是,你为什么要用它而不是text/javascript?
什么是javascript 的MIME类型?
更具体地说,在脚本标记的"type"属性中放入什么是正确的?application/x-javascript而且text/javascript似乎是主要的竞争者.
我很好奇的MIME类型的语义application/javascript对比text/javascript.
显然,一个应该被执行,另一个应该只是文本.
我application/javascript在查看外部.js加载的标题时看到了.
HTTP/1.1 200 OK
Date: Mon, 13 Jan 2014 18:32:58 GMT
Server: Apache/2.2.22 (Unix) mod_ssl/2.2.22 OpenSSL/0.9.8e-fips-rhel5
Content-Type: application/javascript
Content-Length: 856
keep-alive: timeout=5, max=59
Via: 1.1 (jetty)
Accept-Ranges: bytes
Run Code Online (Sandbox Code Playgroud)
如果这application/javascript将执行javascript,为什么我们不使用
<script type="application/javascript">
// some js code.
</script>
Run Code Online (Sandbox Code Playgroud)
反之亦然,为什么外部js不加载text/javascript?
我正在从PHP文件中提供JS响应.设置Content-Type标题时我应该使用哪个值,application/javascript还是text/javascript?
这两者有什么区别?
可能重复:
在提供JavaScript文件时,使用application/javascript或application/x-javascript是否更好
text/javascript和application/javascript有什么区别?
如果您已将type属性设置为application/javascript,则IE将完全忽略脚本标记.
但主要区别是什么,在哪种情况下我们需要使用特定的.
我已经卸载并重新安装IE8几次,javascript将无法运行.我检查了jQuery和众多网站,并运行简单的例子,如alert("hi"); 什么都行不通 脚本调试下的ie8开发人员工具说
"无法在此位置设置断点,未加载文档中的代码"
使用Spoon插件和IE7或IE8时也会发生这种情况.
这些脚本中的任何一个在firefox中运行得很好.
任何想法或帮助非常感谢!
我遇到了一个奇怪的CSRF,我试图访问我的rails服务器上传的javascript文件.我有一个控制器,如:
class SomeController < ApplicationController
def show
some_path = "/some/js/file/on/disk.js"
send_file(some_path, type: "text/javascript", disposition: :inline)
end
end
Run Code Online (Sandbox Code Playgroud)
但是当导航到http://localhost:3000/somes/1我时收到错误消息:
安全警告:另一个站点上的嵌入式标记请求受保护的JavaScript.如果您知道自己在做什么,请继续并禁用此操作的伪造保护,以允许跨源JavaScript嵌入.
提取的来源(第225行):
Run Code Online (Sandbox Code Playgroud)if marked_for_same_origin_verification? && non_xhr_javascript_response? logger.warn CROSS_ORIGIN_JAVASCRIPT_WARNING if logger raise ActionController::InvalidCrossOriginRequest, CROSS_ORIGIN_JAVASCRIPT_WARNING end end
请注意,我直接访问此页面,这意味着没有布局,所以我不能在我的布局中包含CSRF令牌.
是否需要采取不同的方式才能正确访问此资源?
编辑:根据评论请求,我在下面添加了完整跟踪.
actionpack(4.2.6)lib/action_controller/metal/request_forgery_protection.rb:225:在
verify_same_origin_request' activesupport (4.2.6) lib/active_support/callbacks.rb:432:inmake_lambda 中的 块'activesupport(4.2.6)lib/active_support/callbacks.rb:239:block in halting' activesupport (4.2.6) lib/active_support/callbacks.rb:506:in在调用块'activesupport(4.2.6)中lib/active_support/callbacks.rb:506:在each' activesupport (4.2.6) lib/active_support/callbacks.rb:506:in调用'activesupport(4.2.6)lib/active_support/callbacks.rb:92:in__run_callbacks__' activesupport (4.2.6) lib/active_support/callbacks.rb:778:in_run_process_action_callbacks'activesupport(4.2.6)lib/active_support/callbacks.rb:81:inrun_callbacks' actionpack (4.2.6) lib/abstract_controller/callbacks.rb:19:inprocess_action 'actionpack(4.2.6)lib/action_controller/metal/rescue.rb:29:在process_action' actionpack (4.2.6) lib/action_controller/metal/instrumentation.rb:32:inprocess_action 中的 块'activesupport(4.2.6)lib/active_support/notifications.rb:164:在block in instrument' activesupport …
我正在尝试在使用IE6的用户使用我的网站时显示警报.我在想这样的事情会起作用:
<!--[if IE 6]>
<script language="Javascript">
alert ("The year 2004 just called - they want their browser back!")
</script>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)
我测试了这个,但是我没有可以使用ATM的Windows盒子.这是正确的方法吗?
JavaScript ES6 模块 ( *.mjs )的正确(或更好)MIME 类型是什么:text/javascript、application/javascript或javascript/esm?
在我们的JSF 2.0应用程序中,我们通过包含几个javascript文件<h:outputscript>.
<h:outputScript library="javascript" name="DoStuff.js"/>
Run Code Online (Sandbox Code Playgroud)
生成的html将它们称为"text/javascript".
<script type="text/javascript" src="/mycontext/javax.faces.resource/DoStuff.js.jsf?ln=javascript"></script>
Run Code Online (Sandbox Code Playgroud)
根据这个问题,"text/javascript"已经过时了,而且,htmlunit相当冗长地抱怨这种类型.当然,一切正常,我可以关闭htmlunit的日志记录,但我宁愿让JSF生成正确的类型.
有没有办法覆盖所选的类型<h:outputscript>?
javascript ×11
mime-types ×6
csrf ×1
ecmascript-6 ×1
es6-modules ×1
html ×1
http ×1
jsf-2 ×1
php ×1