首先,先解析一下 POST 與 PUT 的區(qū)別
HTTP/1.1協(xié)議中共定義了8中請(qǐng)求方法:GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE,其中用的相對(duì)較多的有下面四種:
GET 獲取資源
PUT 更新或創(chuàng)建資源
POST 創(chuàng)建資源
DELETE 刪除資源
RESTful api則充分利用了HTTP協(xié)議,每個(gè)資源對(duì)應(yīng)一個(gè)具體的URI,然后利用不同的HTTP操作對(duì)應(yīng)增刪改查,如:
POST /uri 創(chuàng)建
DELETE /uri/xxx 刪除
PUT /uri/xxx 更新或創(chuàng)建
GET /uri/xxx 查看
可以看到,GET和DELETE對(duì)應(yīng)的操作非常明確,但是POST與PUT都可以進(jìn)行資源的創(chuàng)建,那么什么時(shí)候用POST什么時(shí)候用PUT呢
這就需要了解HTTP協(xié)議中的另一個(gè)重要性質(zhì):冪等
什么是冪等
要理解PUT和POST的區(qū)別,還要知道HTTP協(xié)議中的一個(gè)重要性質(zhì),冪等(Idempotence):
Methods can also have the property of “idempotence” in that (aside from error or expiration issues) the side-effects of N > 0 identical requests is the same as for a single request.
什么個(gè)意思呢?HTTP協(xié)議中的冪等指的是一個(gè)資源無論請(qǐng)求多少次,對(duì)他產(chǎn)生的副作用是一樣的
GET操作是安全的,也就是不管操作多少次,資源的狀態(tài)都不會(huì)改變,所以GET也是冪等的
PUT和DELETE是冪等的,比如我用PUT或者DELETE修改一個(gè)資源,不管操作多少次,每次操作后的結(jié)果并沒有什么不同
POST操作既不是安全的,也不是冪等的,如果常見的POST重復(fù)加載的問題,我們進(jìn)行了多少次POST的操作,最后就創(chuàng)建了多少個(gè)資源,這也是為什么Chrom等瀏覽器,在刷新POST請(qǐng)求時(shí)會(huì)有彈窗提示
所以,你使用PUT上傳,是沒有問題,使用POST上傳也是可以。
但是,你使用PUT上傳的時(shí)候,需要后端處理 數(shù)據(jù),把相應(yīng)的 header 頭數(shù)據(jù),名字、大小等獲取到,再保存寫入文件就可以。
前端代碼,這樣處理數(shù)據(jù)沒有問題,后端處理如下(以PHP為例子)
public function getPut(string! name = null, var filters = null, var defaultValue = null, boolean notAllowEmpty = false, boolean noRecursive = false) -> var
{
var put;
let put = this->_putCache;
if typeof put != "array" {
let put = [];
parse_str(this->getRawBody(), put);
let this->_putCache = put;
}
return this->getHelper(put, name, filters, defaultValue, notAllowEmpty, noRecursive);
}
public function getRawBody() -> string
{
var rawBody, contents;
let rawBody = this->_rawBody;
if empty rawBody {
let contents = file_get_contents("php://input");
/**
* We need store the read raw body because it can't be read again
*/
let this->_rawBody = contents;
return contents;
}
return rawBody;
}
這個(gè)就是put的處理方式 contents = file_get_contents("php://input");
設(shè)置了這樣的content-type,body不能是這樣的json字符串,而應(yīng)該是a=1&b=2這樣的字符串,另外你的后臺(tái)可以打印一下req,看看是否接收到了請(qǐng)求,如果接收到了就是你的bodyparser沒有設(shè)置的關(guān)系了
為了保證安全:請(qǐng)不停地重設(shè)session的重設(shè);將過期時(shí)間設(shè)置短一些;監(jiān)控referrer與userAgent的值;使用HttpOnly禁止腳本讀取Cookie。這些措施并非萬無一失,但是增加了黑客的難度,因此也是有效的。
https://blog.fundebug.com/201...
你Nav組件只能放自定義事件,詳細(xì)看一下父子組件的事件傳遞吧。
views的ajaxTot方法里
return HttpResponseRedirect('boycott/ajaxTot.html')
改成
return HttpResponseRedirect('/boycott/ajaxTot.html')"http_proxy=my-proxy" ==> "http_proxy\=my-proxy" 或 'http_proxy=my-proxy'
order by 排序
①如果某個(gè)請(qǐng)求固定是從192.168.1.105:9006中請(qǐng)求,那么直接讓192.168.1.105設(shè)置為允許跨域訪問。
②如果后臺(tái)192.168.1.105:9006只是開發(fā)時(shí)所用,最終整個(gè)項(xiàng)目在192.168.1.102:8008中運(yùn)行。那么設(shè)置前端項(xiàng)目的跨域代理為192.168.1.105:9006即可。
不知道你cityList是否有數(shù)據(jù)?
你應(yīng)該思考: 購物車從哪里來,到哪里去??赡苓@樣說有點(diǎn)玄乎,那么你想購物車添加商品,那么它應(yīng)該從哪里來的數(shù)據(jù)添加進(jìn)去?
首先,購物車屬于誰,所以你必須要聲明這一點(diǎn),添加一個(gè)字段記錄用戶 ID 。
然后,這個(gè)購物車放了什么,你需要記錄對(duì)應(yīng)商品 ID ,所以這個(gè)也是必須的。
補(bǔ)充購物車放的商品,生成訂單結(jié)算時(shí)使用,為了節(jié)約性能,可以在購物車表存放商品的一些基本信息,用來進(jìn)行結(jié)算。當(dāng)然,考慮到商品信息的可能變動(dòng),可以用聯(lián)表來查詢獲取相關(guān)信息,這樣保證信息的。。。
最后生成訂單的話
html5的datalist標(biāo)簽
strip是刪除首尾的字符,類似的還有lstrip是刪除首部,rstrip是刪除尾部
詳見:https://docs.python.org/3/lib...
你可以使用replace
>>> '158.2.0.36 <-- 5.5.0.36'.replace(' ', '')
'158.2.0.36<--5.5.0.36'1.首先MUI和MINT-UI一樣都是UI框架,或者是組件庫,但是他們本質(zhì)是不一樣的,mui都是基于原生js或者jQuery,而mint-ui是基于vue的
2.mui的打包不需要webpack參與,hbuild應(yīng)該很方便直接用
3.就技術(shù)選型來說,如果需要快速開發(fā),而且沒有用過vue的話建議直接用mui
不同的編輯器對(duì)markdown的支持是不一樣的,比如很多編輯器都不支持表格或者HTML
android studio的run標(biāo)簽中可能會(huì)有一些提示
或者到Logcat的filter中設(shè)置no filters
設(shè)置logcat的日志級(jí)別為waring級(jí)別 ,一般會(huì)看到一些日志提示
當(dāng)然是經(jīng)過nginx中轉(zhuǎn),你看客戶端看到的實(shí)際Server還是Nginx(自己看一下HTTP Header中的Server頭就能確認(rèn))
你這個(gè)問題解決了嗎?
我也遇到這個(gè)問題,去 GitHub 的 issues 里面也沒找到類似的問題,懷疑是新版本更新的 bug
dva中的model是把redux的action和reducer放在了一起
model里的存的更多是全局的變量和數(shù)據(jù),其實(shí)并不一定要把全部的東西都放到model里
像modal的visible或者其它這個(gè)組件自用的state,完全可以不用model,在組件里寫方法用state就好了,用了model反而代碼變復(fù)雜了
redux里有一句話,當(dāng)你不知道要不要用redux的時(shí)候,其實(shí)就是不需要的
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。