V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
xjtlujoe
V2EX  ›  问与答

jQuery AJAX 的函数调用问题。。

  •  
  •   xjtlujoe · Jun 15, 2016 · 2842 views
    This topic created in 3604 days ago, the information mentioned may be changed or developed.

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

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

    试过比如

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

    但是没有 load 成功...

    求解....

    Supplement 1  ·  Jun 15, 2016
    ```
    <!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 replies    2016-06-16 12:33:58 +08:00
    naver1
        1
    naver1  
       Jun 15, 2016
    能,我测试成功了。
    xjtlujoe
        2
    xjtlujoe  
    OP
       Jun 15, 2016
    @DT27 还是没成功。。咋整
    naver1
        3
    naver1  
       Jun 15, 2016
    @xjtlujoe "demo_test.txt #p1" 后面的"#p1"是什么鬼。。。
    xjtlujoe
        4
    xjtlujoe  
    OP
       Jun 15, 2016
    @DT27 txt 文件中的元素 id 啊。。
    chairuosen
        5
    chairuosen  
       Jun 15, 2016   ❤️ 1
    显然不能。。。。这是要发 http 请求的,除非你本地有个 server 接着,然后 server 转发文件。
    freeminder
        6
    freeminder  
       Jun 15, 2016
    @chairuosen 活捉
    sensui7
        7
    sensui7  
       Jun 15, 2016
    不行, ajax 只能不能操作本地的, 特别是 chrome, 已经禁止本地请求了.
    hxsf
        8
    hxsf  
       Jun 15, 2016 via Android
    不能操作 file://的
    xjtlujoe
        9
    xjtlujoe  
    OP
       Jun 15, 2016
    @chairuosen pc 上弄个 wamp 可以将本地文件弄个 url 链接么?
    hujian201231
        10
    hujian201231  
       Jun 15, 2016 via Android
    我记得 firefox 是可以的,其实你起一个本地服务器就可以正常测试了。
    chairuosen
        11
    chairuosen  
       Jun 15, 2016
    @xjtlujoe 直接一个 nginx ,绑个域名到某个目录,就可以通过请求访问那个目录的文件了
    xjtlujoe
        12
    xjtlujoe  
    OP
       Jun 15, 2016
    @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  
       Jun 15, 2016
    @xjtlujoe 返回头加上 Access-Control-Allow-Origin : * 就行
    learnshare
        14
    learnshare  
       Jun 15, 2016
    开一个本地服务器,就可以发送 Ajax 了
    learnshare
        15
    learnshare  
       Jun 15, 2016
    @learnshare 当然,貌似 IE (当年用的是 9 ?)可以直接打开 file ,然后发 Ajax
    xjtlujoe
        16
    xjtlujoe  
    OP
       Jun 16, 2016
    用 chrome 装了个 Access-Control-Allow-Origin 插件,就可以访问本地文件了。。。查了一下,这个问题是浏览器的“同源策略”问题。。。 jsonp 也可以实现类似功能。。 http://blog.csdn.net/xiaoxian8023/article/details/27817861

    http://www.jianshu.com/p/4e17445d66e2
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5123 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 81ms · UTC 09:45 · PVG 17:45 · LAX 02:45 · JFK 05:45
    ♥ Do have faith in what you're doing.