javascript - 如何在 Javascript 中获取给定 url 的内容类型?

标签 javascript ruby-on-rails-3.2 content-type

我想知道用户在我的 Javascript 代码中输入的给定 url 的内容类型。实际上,我有一个下拉列表(html、csv、xls 等),我想这样做,所以当用户输入 url 时,我想检测 url 内容的类型,并根据这种类型我想要设置我的下拉列表的值(html、csv、xls 等)。我知道,我可以像这样使用 Ruby 获取内容类型:

require 'open-uri'
str = open('http://example.com')
str.content_type #=> "text/html"

或者,我也可以使用 curl 获取内容,然后解析它以了解内容类型。但是,由于我上面解释的需要,我需要在我的 Javascript 代码中执行此操作。有什么想法吗?

EDIT_1:

我在我的 javascript 中试过这段代码:

    $("#wiki_form_url").change(function(){
        $.ajax({
            type: "GET",
            url: "content.rb",
            data: {
//                input_url: $("#wiki_form_url").val()
            },
            dataType: "html"
        }).done(function (data) {
                    // `data` contains the content-type
                    alert('Success !!!');
                }).fail(function () {
                    alert("failed AJAX call");
                });
    });

我有一个 ruby​​ 脚本 content.rb,我在里面做:

require 'open-uri'

str = open('http://www.ofdp.org/benchmark_indices/25')
str.content_type

但是,它似乎不起作用。我遇到 Ajax 失败。可能是因为脚本 content.rb 的 url 路径?我应该如何在这里指定脚本路径? (相对或绝对)

最佳答案

same origin policy防止您使用客户端 JavaScript 直接发现有关任意 URI 的信息(您控制的 URI 是另一回事)。

您需要使用另一种技术(例如服务器端 Ruby)来获取该信息。

您可以通过简单地向服务器提交表单并向浏览器返回一个新网页来做到这一点。

如果您不想离开页面,那么您可以使用Ajax 传递数据。那里不乏 Ajax 教程,here is a good one from MDN .

关于javascript - 如何在 Javascript 中获取给定 url 的内容类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15685866/

相关文章:

ruby-on-rails - 根据类别一个接一个地显示帖子

java - JAX-RS Jersey 读取内容类型为 "*"的实体

java - 浏览器处理真实文件与 servlet 生成的文件不同

spring-mvc - Spring MVC @RequestMapping header 只能接受一个值吗?

javascript - Google 为其新的 Gmail 工具栏使用了哪些样式?

javascript - 带有反应路由器的 react 侧边栏

ruby-on-rails - Rails的ActiveRecord中,列对应的方法名末尾的问号有什么作用?

ruby-on-rails - Ruby 将字符串附加到数组中的每个元素

javascript - 无法将搜索栏定位在标题图片的右侧

javascript - 如何评估 Snowflake 存储过程中的语句