日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

heroku_WhateverOrigin –与Heroku和Play对抗原产地政策! 构架

發(fā)布時(shí)間:2023/12/3 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 heroku_WhateverOrigin –与Heroku和Play对抗原产地政策! 构架 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

heroku

不久前,在編寫(xiě) Bitcoin Pie時(shí) ,我發(fā)現(xiàn)有必要克服臭名昭著的Same Origin Policy ,該政策限制了運(yùn)行在客戶端瀏覽器上的javascript可以訪問(wèn)的域。 通過(guò)Stack Overflow,我找到了一個(gè)名為Any Origin的站點(diǎn),這基本上是無(wú)需設(shè)置專(zhuān)用服務(wù)器即可擊敗Same Origin Policy的最簡(jiǎn)單方法。

一切都很好,直到大約一周前,Any Origin停止為某些(但不是全部)https請(qǐng)求工作。 碰巧的是,那段時(shí)間我在Play上獲得了一些經(jīng)驗(yàn)! 和Heroku,這使我能夠快速構(gòu)建名為Anyever Origin(.org!)的Any Origin的開(kāi)源克隆(在github上 )。 對(duì)于那些不熟悉Play的人! 和Heroku,讓我簡(jiǎn)單介紹一下:

Heroku是領(lǐng)先的PaaS提供商之一。 PaaS只是一種奇特的說(shuō)法:“讓我們來(lái)管理您的服務(wù)器,可伸縮性和安全性……您只是專(zhuān)注于編寫(xiě)應(yīng)用程序。” Heroku最初是一家Ruby商店,但現(xiàn)在支持多種編程語(yǔ)言和平臺(tái),包括python,java,scala,javascript / Node.Js。 它們最酷的一點(diǎn)是,它們提供了大量的插件 ,從簡(jiǎn)單的東西(如自定義域和日志記錄)到計(jì)劃,電子郵件,SMS,再到更強(qiáng)大的插件(如Redis , Neo4j和Memcached) 。

現(xiàn)在在應(yīng)用程序部分,我最近找到了Play! 框架 。 Play是一個(gè)Java / Scala框架,用于編寫(xiě)Web應(yīng)用程序,該框架借鑒了Ruby on Rails / Django的思想,即為您提供完整的預(yù)構(gòu)建解決方案,讓您專(zhuān)注于編寫(xiě)實(shí)際的業(yè)務(wù)邏輯,同時(shí)允許您以后自定義所有內(nèi)容。需要。 我鼓勵(lì)您在Play!主頁(yè)上觀看12分鐘的視頻,該視頻演示了如何從頭開(kāi)始實(shí)現(xiàn)強(qiáng)大的功能。 玩! 在Heroku中受本地支持,因此,要運(yùn)行生產(chǎn)應(yīng)用程序,實(shí)際上要做的就是:

  • 新玩
  • 編寫(xiě)一些業(yè)務(wù)邏輯(控制器/視圖/無(wú)關(guān))
  • git init…git提交
  • “ heroku應(yīng)用程序添加”以創(chuàng)建新應(yīng)用程序(別忘了添加“ –stack cedar”以使用最新一代的Cedar堆棧)
  • “ git push heroku master”上傳您的應(yīng)用程序的新版本……它是自動(dòng)構(gòu)建和部署的。

有了這些工具(實(shí)際上只花了幾天的時(shí)間我就學(xué)會(huì)了),我著手構(gòu)建了Whatever Origin。 處理JSONP請(qǐng)求是一項(xiàng)受IO約束的任務(wù)-您的服務(wù)器基本上會(huì)執(zhí)行HTTP請(qǐng)求,并在完成后將響應(yīng)發(fā)送給使用javascript / JSON魔術(shù)包裝的客戶端。 幸運(yùn)的是Play!對(duì)Async IO的支持確實(shí)非常簡(jiǎn)單。 看看我的單個(gè)get方法 :

public static void get(final String url, final String callback) {F.Promise<WS.HttpResponse> remoteCall = WS.url(url).getAsync();await(remoteCall, new F.Action<WS.HttpResponse>() {public void invoke(WS.HttpResponse result) {String responseStr = getResponseStr(result, url); // code for getResponseStr() not included in this snippet to hide some ugly irrelevant details// http://blog.altosresearch.com/supporting-the-jsonp-callback-protocol-with-jquery-and-java/if ( callback != null ) {response.contentType = "application/x-javascript";responseStr = callback + "(" + responseStr + ")";} else {response.contentType = "application/json";}renderJSON(responseStr);}}); }

第一行啟動(dòng)對(duì)請(qǐng)求的URL的異步獲取,然后注冊(cè)到完成事件,并釋放線程。 您幾乎可以認(rèn)為這是Node.Js !

實(shí)際上,我花了最長(zhǎng)的時(shí)間進(jìn)行開(kāi)發(fā)和調(diào)試的是JSONP本身。 我發(fā)現(xiàn)的有關(guān)此信息以及jQuery的客戶端支持有些棘手,而且我花了幾個(gè)小時(shí)來(lái)處理過(guò)度逃逸的JSON和其他有趣的東西。 完成之后,我只是將其推到github,以每年僅7美元的價(jià)格注冊(cè)了whatorigin.org域,并用Bitcoin Pie代碼中的whatorigin.org替換了anyorigin.com,瞧,這個(gè)網(wǎng)站重新上線了。

我真的很喜歡在2011年開(kāi)發(fā)網(wǎng)站–整個(gè)行業(yè)都在致力于使個(gè)人/小型創(chuàng)業(yè)公司輕松開(kāi)發(fā)出令人贊嘆的產(chǎn)品。

參考: WhateverOrigin –與Heroku和Play對(duì)抗相同的原產(chǎn)地政策! 來(lái)自JCG合作伙伴 Ron Gross的A Quantum Immortal博客的框架


翻譯自: https://www.javacodegeeks.com/2012/01/whateverorigin-combat-same-origin.html

heroku

總結(jié)

以上是生活随笔為你收集整理的heroku_WhateverOrigin –与Heroku和Play对抗原产地政策! 构架的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。