来自文件名的Javascript相对路径(不含windows.location)

时间:2016-12-15 10:15:20

标签: javascript ajax

让我们假设我需要使用文件名中的相对路径而不使用 @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) { if (holder instanceof CardHolder) { final CardHolder cardHolder = (CardHolder) holder; cardHolder.rootview.setOnClickListener(this); cardHolder.rootview.setTag(position); cardHolder.rootview.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //get last itemview in adapter,but preView isnot match the //position,it is the visibable views on screen View preView = mLinearLayoutManager.getChildAt(preIndex); //change the datasource mData.getResult().getCardList().get(preIndex).setOpen(false); //update item notifyItemChanged(preIndex);//when the item is out of screen, //this line will cause crashes preIndex = position; } }); } 来制作AJAX请求(由于客户特定的请求)。

所以,在一个虚构的页面上:windows.location,我需要做类似的事情:

$.get( "./data/mydata.json", function( data ) {
  ....
});

这样做请求指向:mywebsite/myfolder/mypagename,但我需要它指向:mywebsite/myfolder/data/mydata.json

有什么办法吗?我也试过mywebsite/myfolder/mypagename/data/mydata.json,但似乎是"~/data/mydata.json"

1 个答案:

答案 0 :(得分:0)

正如我所要求的那样似乎无法实现,我在发送任何ajax调用之前在网址上使用了带有验证正则表达式的windows.location.pathname:

if (! ( /([<>]|javascript:)/.test(decodeURIComponent(apiUrl)) )) {

    ... do the call

} else {

    window.location.href = '/404';

}

希望它可以帮助别人