如何解决Ajax POST不起作用/扭曲
| twisted.web和AJAX 类似的线程已经退出。我什至从那里获取了代码,但是我遇到了同样的问题,扭曲的服务器就像一个咒语,但是无法弄清楚为什么我无法使用Ajax来获取它。在类似的话题中,他说警报发出了,但是没有数据。对我来说,甚至不会弹出警报,但另一个ajax函数也可以正常工作,因此,一般而言,使用ajax都可以,但是在获取某些内容时却出现了问题。 就像在类似线程中所说的那样,我可以用curl-$ curl --url http://localhost:8082/test -v
来获取它,并且它显示了hello世界,因此服务器可以100%正常工作。
有任何想法吗 ?
<script type=\"text/javascript\">
// Submit button
$(function(){
$.ajax({type: \"POST\",$(\'a\').click(function(){
url: \"http://localhost:8082/test\",data: {},success: function(data) {alert(\"Success:\" + data);}
});
});
});
</script>
<html>
[...]
<a href=\"#\">Load Favorites Movies</a>...
[...]
</html>
server.py
from twisted.web import server,resource,http
class RootResource(resource.Resource):
def __init__(self):
resource.Resource.__init__(self)
self.putChild(\'test\',TestHandler())
class TestHandler(resource.Resource):
isLeaf = True
def __init__(self):
resource.Resource.__init__(self)
def render_GET(self,request):
return self.render_POST(request)
def render_POST(self,request):
return \"Hello World!\"
if __name__ == \"__main__\":
import sys
from twisted.internet import reactor
reactor.listenTCP(8082,server.Site(RootResource()))
reactor.run()
非常感谢Peter Le Bek和Darkporter。
Peter Le Bek asnwer被标记为正确,而Darkporter从我这里投赞成票=)。
答案:Peter的答案开箱即用,只是让我感到困惑的是line,您必须在其中指定静态文件夹。这很容易...只要在其中访问任何文件夹,将其中的文件夹分隔开,然后将index.html放在其中,它将是一个根目录。
解决方法
您的Javascript已损坏,请尝试以下操作:
wwwdir / index.html
<html>
<head>
<script src=\"http://code.jquery.com/jquery-1.5.2.min.js\"></script>
</head>
<body>
<a href=\"#\">click me</a>
<script type=\"text/javascript\">
$(\'a\').click(function(){
$.ajax({type: \"POST\",url: \"http://localhost:8082/test\",data: {},success: function(data) { alert(\"Success: \" + data); }
});
});
</script>
</body>
</html>
您可能仍然会满足darkporter提到的跨域HTTP请求限制,以解决使用同一台Twisted服务器为您的网页提供服务的问题:
server.py
from twisted.web import server,resource,http,static
class TestHandler(resource.Resource):
isLeaf = True
def __init__(self):
resource.Resource.__init__(self)
def render_GET(self,request):
return self.render_POST(request)
def render_POST(self,request):
return \"hello world!\"
if __name__ == \"__main__\":
import sys
from twisted.internet import reactor
root = static.File(\'/path/to/wwwdir\')
testHandler = TestHandler()
root.putChild(\'test\',testHandler)
reactor.listenTCP(8082,server.Site(root))
reactor.run()
,您的JavaScript所驻留的页面是否在同一主机和端口上投放?如果没有,您将遇到跨域问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。