V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
xjtlujoe
V2EX  ›  问与答

jQuery AJAX 的函数调用问题。。

  •  
  •   xjtlujoe · 2016-06-15 13:27:16 +08:00 · 2229 次点击
    这是一个创建于 3117 天前的主题,其中的信息可能已经有所发展或是发生改变。

    jQuery AJAX 中的 load,get 函数中第一个参数, url ,在 win 下能调用本地文件么?

    比如和 html 文件同一个目录下的 txt 文件...

    试过比如

    $("#div1").load("test.txt");

    但是没有 load 成功...

    求解....

    第 1 条附言  ·  2016-06-15 14:01:59 +08:00
    ```
    <!DOCTYPE html>
    <html>
    <head>
    <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js">
    </script>
    <script>
    $(document).ready(function(){
    $("button").click(function(){
    $("#div1").load("demo_test.txt #p1");
    });
    });
    </script>
    </head>
    <body>

    <div id="div1"><h2>Let jQuery AJAX Change This Text</h2></div>
    <button>Get External Content</button>

    </body>
    </html>
    ```
    16 条回复    2016-06-16 12:33:58 +08:00
    DT27
        1
    DT27  
       2016-06-15 13:32:02 +08:00
    能,我测试成功了。
    xjtlujoe
        2
    xjtlujoe  
    OP
       2016-06-15 13:37:22 +08:00
    @DT27 还是没成功。。咋整
    DT27
        3
    DT27  
       2016-06-15 14:06:48 +08:00
    @xjtlujoe "demo_test.txt #p1" 后面的"#p1"是什么鬼。。。
    xjtlujoe
        4
    xjtlujoe  
    OP
       2016-06-15 14:40:27 +08:00
    @DT27 txt 文件中的元素 id 啊。。
    chairuosen
        5
    chairuosen  
       2016-06-15 14:57:55 +08:00   ❤️ 1
    显然不能。。。。这是要发 http 请求的,除非你本地有个 server 接着,然后 server 转发文件。
    freeminder
        6
    freeminder  
       2016-06-15 14:58:35 +08:00
    @chairuosen 活捉
    sensui7
        7
    sensui7  
       2016-06-15 15:03:41 +08:00
    不行, ajax 只能不能操作本地的, 特别是 chrome, 已经禁止本地请求了.
    hxsf
        8
    hxsf  
       2016-06-15 15:05:34 +08:00 via Android
    不能操作 file://的
    xjtlujoe
        9
    xjtlujoe  
    OP
       2016-06-15 15:21:43 +08:00
    @chairuosen pc 上弄个 wamp 可以将本地文件弄个 url 链接么?
    hujian201231
        10
    hujian201231  
       2016-06-15 15:24:31 +08:00 via Android
    我记得 firefox 是可以的,其实你起一个本地服务器就可以正常测试了。
    chairuosen
        11
    chairuosen  
       2016-06-15 15:24:39 +08:00
    @xjtlujoe 直接一个 nginx ,绑个域名到某个目录,就可以通过请求访问那个目录的文件了
    xjtlujoe
        12
    xjtlujoe  
    OP
       2016-06-15 16:22:40 +08:00
    @chairuosen 用 apache 应该也可以,有个 serveralias 方法可用。。不过试了网上的案例,没啥用。。。于是找了个 url ( http://www.runoob.com//try/ajax/demo_test.txt ),在 load 函数中调用这个 url ,也不行。。。 chrome 说是 No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
    chairuosen
        13
    chairuosen  
       2016-06-15 16:24:01 +08:00
    @xjtlujoe 返回头加上 Access-Control-Allow-Origin : * 就行
    learnshare
        14
    learnshare  
       2016-06-15 16:48:17 +08:00
    开一个本地服务器,就可以发送 Ajax 了
    learnshare
        15
    learnshare  
       2016-06-15 16:49:13 +08:00
    @learnshare 当然,貌似 IE (当年用的是 9 ?)可以直接打开 file ,然后发 Ajax
    xjtlujoe
        16
    xjtlujoe  
    OP
       2016-06-16 12:33:58 +08:00
    用 chrome 装了个 Access-Control-Allow-Origin 插件,就可以访问本地文件了。。。查了一下,这个问题是浏览器的“同源策略”问题。。。 jsonp 也可以实现类似功能。。 http://blog.csdn.net/xiaoxian8023/article/details/27817861

    http://www.jianshu.com/p/4e17445d66e2
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   950 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:40 · PVG 05:40 · LAX 13:40 · JFK 16:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.