gpt4 book ai didi

javascript - Ajax POST 不起作用/扭曲

转载 作者:行者123 更新时间:2023-11-30 07:18:09 33 4
gpt4 key购买 nike

Twisted.Web and AJAX类似的线程已经存在。我什至从那里获取代码,但我遇到了同样的问题,扭曲的服务器工作起来很有魅力,但无法弄清楚为什么我不能用 ajax 获取它。在类似的线程中,他说警报出来了,但没有数据。对我来说,即使警报不会弹出,还有另一个 ajax 函数可以工作,所以通常使用 ajax 一切正常,但恰恰是获取错误。

正如在类似帖子中所说,我可以使用 curl - $ curl --url http://localhost:8082/test -v 获取它,它显示 hello world ,所以服务器工作正常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 BekDarkporter。Peter Le Bek asnwer 标记为正确,Darkporter 投票 =) 来 self 。

答案:彼得的答案开箱即用,只是让我有点困惑的是那一行,你必须在其中指定静态文件夹。这很容易...只需在其中指定任何文件夹,将 index.html 放在那里,当您在 Web 上访问它时,它将成为一个根目录。

最佳答案

你的 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>

您可能仍会遇到 cross-domain HTTP request restriction darkporter 提到,要解决此问题,请使用相同的 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 - Ajax POST 不起作用/扭曲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5851998/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com