我有一个HTML页面,该页面使用JSONP Plugin优雅地处理JSONP调用中的错误。我的问题很困惑(我希望它有一个简单易用的“ D'Oh!”解决方案:))。
当.js文件与HTML页面位于同一目录中并按以下方式加载时:
<script type="text/javascript" src="jquery.jsonp.min.js"></script>
一切正常。但是,如果我将其移至内部JS目录,则所有其他JS文件都位于该目录中:
<script type="text/javascript" src="js/jquery.jsonp.min.js"></script>
它总是调用错误函数。我使用FireBug进行了跟踪,并调用了
$.jsonp
函数,但立即跳转到错误函数。代码本身如下所示:
$.jsonp(
{
url: ipUrl,
timeout: 30000,
success: displayData,
error: displayError
}
);
有任何想法吗?我真的很想以有组织的方式发货。谢谢你的时间。
几个事实:该页面在本地测试(没有Web服务器)。没有权限/安全问题。同一目录中还有其他.js文件可以很好地加载。在所有浏览器中都会发生该错误。
更新:根据亚历克斯的建议,我下载了未缩小的版本并将其放在js目录中。我更改了HTML页面中的引用,并使用FireBug进行了跟踪。该函数确实接收到正确的URL,并且可以正常工作!我从最小化到最小化来回移动,结果很明显:最小化版本中有些东西搞砸了!不过,我不知道是什么会以某种影响位置的方式搞砸一个函数?我应该只发布未简化的版本,然后忘记它吗?
更新2-解决方案:我自己最小化了打开的文件(我使用Alex的链接获取了C# code for JSMin),我进行了编译,并最小化了该文件-并且它起作用了。然后,我将其与下载的文件进行了比较-回车符被弄乱了。再次下载文件-一切正常。
最佳答案
只是一个猜测,但是如果ipUrl也是页面本地的(用于测试),那么也许当脚本从其他目录添加时,它会尝试命中相对于其位置不存在的本地文件。那将立即抛出错误函数。
您可以使用脚本的非压缩版本进行调试并查看其尝试访问的URL吗?