我有一个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吗?

10-04 15:41
查看更多