iT邦幫忙

0

PHP AJAX URL 路徑一問

  • 分享至 

  • xImage

大家好

最近在使用AJAX 寫一個可以填資料的程式
如下URL:放在同目錄的檔案都可以正常使用並且寫到EXCEL裡面

第一問請教URL如果要去抓網路磁碟上的JSON 應該如何寫才能抓到
例如\192.168.0.100\share\json\num.json

第二問這個路徑給予的是http的路徑呢
例如http://192.168.0.100/web/json/num.json

function Test(){
            $.ajax({
                type: "post",
                async: false,    
                url: "num.json",
                data: {},        
                dataType: "json",
                success: function(result) {
                    if (result) {
                        for (var i = 0; i < result.length; i++) {
                            nums.push(result[i].xi);
                            console.log(result[i].xi);
                        }
                    }
                }
            })
            return nums;
        }

/images/emoticon/emoticon22.gif

看更多先前的討論...收起先前的討論...
fillano iT邦超人 1 級 ‧ 2021-12-13 19:39:33 檢舉
不要看到ip跟路徑就以為可以直接通,http跟網路芳鄰不是一回事,這是兩個完全不一樣的通訊協定,只是底層都有TCP/IP。(精確一點說,現在使用的netbios over tcp/ip底層使用tcp/ip)
放在UNC(兩個反斜)上的資料夾裡的檔案,如果遠端沒有開相應的iusr(網頁使用者)權限,你無法直接用網頁存取哦,如果你真的只有別台共享的資源可用的話,可以考慮在那台伺服器上授與權限,或是IIS/APACHE跟共享源都使用AD,要抓JSON的都先登入AD
@fillano 原來如此 我太天真了哈哈
@japhenchen 了解 我嘗試一下 感謝你提供方法
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
3
㊣浩瀚星空㊣
iT邦大神 1 級 ‧ 2021-12-13 17:43:57
最佳解答

第一問請教URL如果要去抓網路磁碟上的JSON 應該如何寫才能抓到

如果是在WEB路徑內可控管的。直接對應好連結就好。
如果不是,目前辦不到這件事。除非你是用localhost或是127.0.0.1等連結。
那倒還可以利用一下 file:://

第二問這個路徑給予的是http的路徑呢

看不懂你想問啥。

總之,先說清楚講明白。
前端的用法會有本機安全性原則。基本並不容許可直接讀取本機應用式的檔案。
(網路硬碟也算是本機應用式)

當然,如果你有將網路硬碟連結給WEB SERVER使用。
自然就可以利用 http 的方式來直接連結讀取。

看更多先前的回應...收起先前的回應...

其實我是想例如我電腦IP是192.168.0.11 想說這樣分享我目錄的檔案給我另外一台連URL 不過我直接貼上http://192.168.0.11:80/web/json/num.json 到網頁上是可以顯示的 但是丟到我的程式碼中 是抓不到的

http是需要透過你的web server才有作用的。
並不是說你直接給他IP就可以連結。

也就是說。你光「我電腦IP是192.168.0.11 想說這樣分享我目錄的檔案」這樣的想法就不對了。
並不是給IP就可以連結你的電腦檔案。
如果是這樣就可以的話,全世界有上網的電腦資料都可以被看光光了。
(這讓我想起來FOX事件)

當然了,就如我上面說的。如果你今天用了一個WEB SERVER來指向到你的網路硬碟位置去。自然就可以使用 http 來拿到你的檔案。

不知道這樣的說明你是否清楚呢?

另外,我剛有發現到你說用「http://192.168.0.11:80/web/json/num.json」
是可以顯示的。這樣子也就代表說。其實你已經有WEB SERVER了。
所以可以讀取到檔案。
但放到程式碼就抓不到??
基本我猜測的原因是。你程式碼並不是放在你的本機上。
而是在別的地方或是機器上。
這樣子的話,你需要在放程式碼那台機器上試一下連結是否可以連到192.168.0.11。

畢竟這看起來就是一個內網的IP。如果你是將程式放出去外部機器。不在你的本機或是內網同網域內使用的話。當然會抓不到了。

了解了 看來我對分享網址理解不夠 謝謝我換個方向試試看 /images/emoticon/emoticon41.gif

froce iT邦大師 1 級 ‧ 2021-12-14 15:07:07 檢舉

file://
現在好像也不能用了,主流現代瀏覽器都關掉不讓你內容混用了。

https://stackoverflow.com/questions/30179008/json-file-dosent-show-up-in-google-chrome

本機連結不是還可以?

1
天黑
iT邦研究生 5 級 ‧ 2021-12-13 17:52:55

第一問請教URL如果要去抓網路磁碟上的JSON 應該如何寫才能抓到
A: 如果是windows可以考慮直接掛載該網路磁碟,這樣你只需要確認你可以寫入其他磁碟槽內的檔案,但可能會有資安漏洞,內部系統應該可以

第二問這個路徑給予的是http的路徑呢
A: 這個看無
通常寫檔案應該不會單純靠前端,可能要透過PHP,前端再呼叫PHP API,應該會比較好處理,如果有連結的json就可以被js改變,這是一件很可怕的事情。

是 ~ 我是看到很多政府網站都有所謂的公開資料JSON 所以我突發奇想 我自己的電腦A有放出http://192.168.0.11/wen/json/num.json 給我電腦B寫程式去抓 第二問是想這樣試試看

0
japhenchen
iT邦超人 1 級 ‧ 2021-12-14 08:03:27

...恕刪...

我要發表回答

立即登入回答