2013-08-06 56 views
0

我对如何实现这一目标毫无头绪。我搜索了互联网,但可能在长关键字的错误领域。Ajax发布到本地URL

我想运行一个RESTful api。

$.ajax({ 
    type: "POST", 
    url: "https//my.url/", 
    data: { ...some json... } 
    }).done(function(msg) { 
     alert("CREATE EVENT Data Saved: " + msg); 
     }); 

我知道,我不能这样做从阿贾克斯跨域调用,所以我想一个ajax发布到本地URL,然后做服务器代码HTTP POST到远程服务器。

它是什么喜欢做一个ajax发布到本地网址?本地URL页面是什么样的?

我在Django和Javscript

回答

1

像Vaishak的答案。您在urls.py地图的视图:

url(r'^postdata$', 'name_of_your_app.views.postdata') 

然后你用jQuery这样称呼它:

$.ajax({ 
    type: "POST", 
    url: "/postdata/", 
    // ... 
+0

我对你所说的“application.views.postdatatoserver”什么困惑。这是做什么,我应该怎样view.py看起来像?目前:def postdata(请求): 返回呈现(请求,'livestream/postdata.html') – Marcus

+0

我已经更新了我的答案。 'postdata.html'中有json吗? –

+0

谢谢。现在有道理。 Json目前是空白的,但我现在要开始研究它了。 – Marcus

0

编程如果你看一下浏览器控制台,您可能会发现一个例外,说明该请求被阻止,因为Same Origin Policy侵犯

如果域从您的网页被加载的请求所针对的域不同,因此Same Origin Policy限制将不起作用。

如果服务器支持CORS那么你可以解决它。

0

如果您发布数据,则可以进行跨域呼叫。由于Same Origin Policy,您不能load或从其他页面获取数据。

如果您决定张贴到本地URL,然后让服务器做你所描述的方式,即让下一个请求,那么你不需要做任何特殊。 您的本地URL是应用程序中的另一个页面/方法。

地图需要在你的urls.py来处理这个请求,并请求转发给该方法。

例子:

如果urls.py项是像下面

url(r'^postdata$', 'application.views.postdatatoserver') 

然后你在测试服务器上的URL会

http://localhost:8000/postdata