2013-08-06 57 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