Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Web2py在本地和在线版本上请求不同的行为(执行服务器代码,但返回404错误)_Javascript_Ajax_Web2py - Fatal编程技术网

Javascript Web2py在本地和在线版本上请求不同的行为(执行服务器代码,但返回404错误)

Javascript Web2py在本地和在线版本上请求不同的行为(执行服务器代码,但返回404错误),javascript,ajax,web2py,Javascript,Ajax,Web2py,在我的本地版本的应用程序上,使用以下代码发出请求,在服务器上执行代码,并成功返回 $.ajax({ type: 'POST', url: "{{=URL('default', 'serverFunction.json')}}", data: {id: id} }); 但是,如果我像这样发出请求(serverFunction后面没有“.json”) 服务器代码执行,但返回404错误 在在线版本上,它在两种情况下都返回404错误,执行服务器代码 假设serverFunction返回一个字典

在我的本地版本的应用程序上,使用以下代码发出请求,在服务器上执行代码,并成功返回

$.ajax({
 type: 'POST',
 url: "{{=URL('default', 'serverFunction.json')}}",
 data: {id: id}
}); 
但是,如果我像这样发出请求(serverFunction后面没有“.json”)

服务器代码执行,但返回404错误


在在线版本上,它在两种情况下都返回404错误,执行服务器代码

假设
serverFunction
返回一个字典,默认情况下web2py将查找相关的/views/default/serverFunction.json视图。如果它不存在,则可以改为使用/views/generic.json视图,但默认情况下会禁用generic视图。脚手架应用程序包括以下行:

response.generic_patterns = ['*'] if request.is_local else []
它仅为本地请求启用通用视图。这可能就是.json请求在本地工作而不是远程工作的原因。如果要使用generic.json视图,在
serverFunction
函数中,只需包括:

response.generic_patterns = ['json']
或:


不清楚为什么没有.json扩展名的本地请求会出现404错误,您需要查看更多代码来帮助解决这个问题。

扩展名.html是可选的。假定html为默认值。该扩展确定呈现控制器函数f()输出的视图的扩展。
因此,在第二种情况下,假定为.html扩展。我对此不确定。阅读我将
response.generic_patterns=['json']
放在所有*.py文件的开头,这些文件包含一些与ajax调用相关的函数,它似乎可以解决服务器端的问题
response.generic_patterns = ['json']
response.view = 'generic.json'