[英]javascript called but not loaded on page
我正在對我們使用的工具進行更改,但無法加載本地javascript文件。jquery庫鏈接可以正常運行:
builder.append("<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script>");
但是項目中存儲的js文件似乎返回空白頁。
builder.append("<script src='/SessionInfo/js/session.js'></script>");
該項目使用了一個自定義控制器,該控制器根據uri路由請求,以下是代碼段:
if ( lowerCaseUri.matches("/sessioninfo/v1/userid/?") ) {
UserIDHandlerV2.handleUserIdPrompt(output);
} else if ( lowerCaseUri.matches("/sessioninfo/v1/userid/.*") ) {
UserIDHandlerV2.handleUserIdSessionListDisplay(request, output);
} else if ( lowerCaseUri.matches("/sessioninfo/js/.*") ) {
response.setContentType("text/javascript");
}
查看fiddler和chrome工具,它顯示了200個返回正確內容類型的響應,但是傳輸了0個字節,並且在資源/腳本中顯示了空白頁。
我建議放棄“基於uri路由請求的自定義控制器”,並使用URL重寫過濾器(例如Tuckey Urlrewrite過濾器)
您的問題顯然是您的自定義控制器不起作用。 一方面,請看以下內容:
else if ( lowerCaseUri.matches("/sessioninfo/js/.*") )
{
response.setContentType("text/javascript");
}
如果有對javascript文件的請求,則您對該請求所做的一切就是將內容類型設置為javascript。 您不是在閱讀JavaScript文件並為其提供服務。
您正在做的是嘗試構建自己的url重寫,這不是必需的。
您也可以將/sessioninfo/js/.*
從控制器中/sessioninfo/js/.*
。 我假設這些只是普通的.js文件,對不對? 那么,為什么要使用控制器來路由它們呢? 控制器的目的是當您需要在視圖上放置后端信息時,因此您首先將用戶發送到控制器(即Servlet),然后控制器設置請求屬性,然后轉發到僅顯示它們的JSP。
使用HttpServletRequest#getContextPath
附加這些源:
builder.append("<script src='" + request.getContextPath() + "/SessionInfo/js/session.js'></script>");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.