Dva: рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 17 рдирд╡ре░ 2016  ┬╖  18рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: dvajs/dva

рдореЙрдбрд▓ рдкрд░рдд рдкреНрд░рднрд╛рд╡ рдореЗрдВ рд╕реЗрд╡рд╛ рдкрд░рдд рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ, рдХреЛрдб рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

// х╝ХхЕеservice
import { login } from '../services/authentication';
// effects
*login({ payload: { currentUser } }, { select, call, put }) {
      const data = yield call(login, {
        "mobile": currentUser.userName,
        "password": currentUser.password
      });
      console.log('my response data is:', data);

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреГрд╢реНрдп рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдз рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдореБрджреНрд░рдг рдбреЗрдЯрд╛ рдЪреЗрдХрд╕реНрдЯреИрдЯрд╕ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдЪреЗрдХрд╕реНрдЯреИрдЯрд╕ рд╕реЗ рдкрд╣рд▓реЗ рджреА рдЧрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ:

body:(...)
bodyUsed:false
headers:Headers
    __proto__: Headers
ok:false
status:0
statusText:""
type:"opaque"
url:""

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ? рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреГрд╢реНрдп рдЕрдиреБрд░реЛрдз 200 рдХреА рд╕реНрдерд┐рддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдкреНрд░рд╛рдкреНрдд http рд╕реНрдерд┐рддрд┐ рдХреЛрдб 0 рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдореЗрд░рд╛ рдкреНрд░рднрд╛рд╡ рд╣реИ рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ?

277 рд╡реИрд╕реЗ, рд╣реЗрдбрд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИред рдпрд╣ dva6.0 рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рднреА рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдЖрдЗрд╕реЛрдореЙрд░реНрдлрд┐рдХ-рдлрд╝реЗрдЪ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

  1. рдлрд╝реЗрдЪ рджреНрд╡рд╛рд░рд╛ рдлреЗрдВрдХреА рдЧрдИ рддреНрд░реБрдЯрд┐ рдиреЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛, рдФрд░ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдПрдХ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рд╕рдорд╕реНрдпрд╛ рдереА, рдПрдХ рд╡рд╛рджрд╛ рд╕рдорд╛рдзрд╛рди (рдЕрдХреНрд╖реАрдп) рдореЗрдВ рдмрджрд▓ рдЧрдИ
    2. рдореБрдЭреЗ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдПрдХ рдкреЛрд╕реНрдЯ рдорд┐рд▓реА, рдореЛрдб рд╕реЗрдЯ рдХрд┐рдпрд╛: рдиреЛ-рдХреЙрд░реНрд╕, рдФрд░ рдХреБрдЫ рдЪрдХреНрдХрд░ рд▓рдЧрд╛рдПред
    3. рдЕрдВрдд рдореЗрдВ, рдореБрдЭреЗ рднреНрд░реВрдг рдХреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рдкрдврд╝рдХрд░ рд▓рд╛рдиреЗ рдХреА рдЧрд╣рд░реА рд╕рдордЭ рд╣реИ, рдФрд░ рдЕрдВрдд рдореЗрдВ рдореЛрдб рд╕реЗрдЯ рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛; corsред
    рд╕рд╛рд░рд╛рдВрд╢: рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреБрдВрдЬреА xhr рдФрд░ http рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреА рд╕рдордЭ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рдореЛрдб рдХреЛ Cors рдФрд░ no-cors рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ cors рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рдХрд▓реНрдк s рд╕реЗ рд╣реЛрдХрд░ рдЧреБрдЬрд░рддрд╛ рд╣реИред рдХреНрд╖реЗрддреНрд░ред

рд╕рднреА 18 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣ рдПрдХ рдкреНрд░рднрд╛рд╡ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕реЗ рд▓рд╛рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреНрд░реЙрд╕ рдбреЛрдореЗрди?

рдореИрдВрдиреЗ рдПрдХ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛, рдФрд░ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ axios рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ред рд╕рдм рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рд╣реИред рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП?

рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдЖрдЬрдорд╛рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд╝реЗрдЪ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдРрд╕рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ XMLHTTPRequest рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреБрдХреА рдХреЛ рдирд╣реАрдВ рд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛? https://www.npmjs.com/package/whatwg-fetch#sending -cookies

рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, рд╕рд░реНрд╡рд░ GO рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдЬрдм рддрдХ рд╕рд░реНрд╡рд░ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдХрд╛ рд╕рдорд░реНрдерди/рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ;

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @xaviertung рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг/рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рд▓реЙрдЧ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░реЗрдВ :)

резрео рдирд╡рдВрдмрд░ реирежрезрем рдХреЛ рд╕реБрдмрд╣ рео:рейреж рдмрдЬреЗ, рдЪреЗрдирдЪреЗрдВрдЧ (ф║Сш░ж) рдЕрдзрд┐рд╕реВрдЪрдирд╛рдПрдБ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдЖрдЬрдорд╛рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд╝реЗрдЪ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдРрд╕рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ XMLHTTPRequest рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреБрдХреА рдХреЛ рдирд╣реАрдВ рд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛? https://www.npmjs.com/package/whatwg-fetch#sending -cookies https://www.npmjs.com/package/whatwg-fetch#sending -cookies
-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдереНрд░реЗрдб рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ https://github.com/dvajs/dva/issues/282#issuecomment -261413729, рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ https://github.com/notifications/unsubscribe-auth/ACv7UniRkGq0Uv8XFBUeNMe5jBeGyWpQksZM_PKgaJp. 4

рдзрдиреНрдпрд╡рд╛рдж, рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ, рдпрд╣ рдореЛрдб рдФрд░ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рд╕реЗрдЯрд┐рдВрдЧ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд░реЗрдВ, рдЖрдЗрдП рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЛ рдмрд╛рдж рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред

  1. рдлрд╝реЗрдЪ рджреНрд╡рд╛рд░рд╛ рдлреЗрдВрдХреА рдЧрдИ рддреНрд░реБрдЯрд┐ рдиреЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛, рдФрд░ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдПрдХ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рд╕рдорд╕реНрдпрд╛ рдереА, рдПрдХ рд╡рд╛рджрд╛ рд╕рдорд╛рдзрд╛рди (рдЕрдХреНрд╖реАрдп) рдореЗрдВ рдмрджрд▓ рдЧрдИ
    2. рдореБрдЭреЗ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдПрдХ рдкреЛрд╕реНрдЯ рдорд┐рд▓реА, рдореЛрдб рд╕реЗрдЯ рдХрд┐рдпрд╛: рдиреЛ-рдХреЙрд░реНрд╕, рдФрд░ рдХреБрдЫ рдЪрдХреНрдХрд░ рд▓рдЧрд╛рдПред
    3. рдЕрдВрдд рдореЗрдВ, рдореБрдЭреЗ рднреНрд░реВрдг рдХреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рдкрдврд╝рдХрд░ рд▓рд╛рдиреЗ рдХреА рдЧрд╣рд░реА рд╕рдордЭ рд╣реИ, рдФрд░ рдЕрдВрдд рдореЗрдВ рдореЛрдб рд╕реЗрдЯ рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛; corsред
    рд╕рд╛рд░рд╛рдВрд╢: рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреБрдВрдЬреА xhr рдФрд░ http рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреА рд╕рдордЭ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рдореЛрдб рдХреЛ Cors рдФрд░ no-cors рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ cors рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рдХрд▓реНрдк s рд╕реЗ рд╣реЛрдХрд░ рдЧреБрдЬрд░рддрд╛ рд╣реИред рдХреНрд╖реЗрддреНрд░ред

@sorrycc рд╢рд┐рдХреНрд╖рдХ, рдореБрдЭреЗ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдлрд╝реЗрдЪ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рднреА рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рд▓рд╛рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХрдВрд╕реЛрд▓ рдореЗрдВ рдПрдХ 200 рд╡рд┐рдХрд▓реНрдк рдЕрдиреБрд░реЛрдз рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред рдкреГрд╖реНрдарднреВрдорд┐ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░ рд╕рдХрддреА рд╣реИред рдирд┐рд░реНрдгрдп рд╡рд┐рдзрд┐ GET (рдореЗрд░рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрд░реЛрдз) рд╣реИ, рдФрд░ рдлреНрд░рдВрдЯ рдПрдВрдб рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИредjson() рдкреГрд╖реНрдарднреВрдорд┐ рдбреЗрдЯрд╛ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдВрд╕реЛрд▓ рдореЗрдВ GET рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЕрдЬрд╛рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рд╣реИред рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╡рд┐рдХрд▓реНрдк рдФрд░ GET рджреЛрдиреЛрдВ рдЕрдиреБрд░реЛрдз рд╣реИрдВред

@AsceticBoy рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрдВрд╕реЛрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдХреНрдпрд╛ рдпрд╣ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рд╕реЗ рд▓реИрд╕ рд╣реИ?

@xaviertung рдХреНрд░реЙрд╕-рд╕рд╛рдЗрдЯ рдлреНрд░рдВрдЯ рдПрдВрдб рдХреЛ рдХреЗрд╡рд▓ рдореЛрдб рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ; cors?
рдореИрдВрдиреЗ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдЬреЛрдбрд╝реЗ: рд╣реЗрдбрд░ рдореЗрдВ 'рд╢рд╛рдорд┐рд▓', рдФрд░ рдореИрдВ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЕрдиреБрд░реЛрдз рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред
рдбрд┐рдмрдЧрд┐рдВрдЧ рдЕрдм рдкрд░реЗрд╢рд╛рдиреА рднрд░рд╛ рд╣реИред рдореБрдЭреЗ рд╣рд░ рдмрд╛рд░ рд▓рд╛рдЧрдд рдбреЛрдореЗрди рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдлрд┐рд░ рдлреНрд░рдВрдЯ-рдПрдВрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмреИрдХ-рдПрдВрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдбрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред
рдореБрдЭреЗ рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ nginx+tomcat (рд╕реНрдкреНрд░рд┐рдВрдЧ) рдмреИрдХрдПрдВрдб рдХреЛ рдХреИрд╕реЗ рд╕реЗрдЯ рдЕрдк рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?рдзрдиреНрдпрд╡рд╛рдж

@wuyongdec рдХреЛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕рд░реНрд╡рд░ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд╣реИред

@wuyongdec рдбреЛрд░рд╛ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ

@xaviertung рд╕рд░реНрд╡рд░ рдЦреЛрд▓рд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕рд░реНрд╡рд░ рдиреЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрдм рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓: 'рд╢рд╛рдорд┐рд▓' рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред

@jingchenxu рдХреНрдпрд╛ рдХреЛрдИ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИ?

рдореБрдЭреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░реЙрдХреНрд╕реА .roadhogrc рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкреНрд░реЙрдореНрдкреНрдЯ рднреА рдПрдХ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рд╕рдорд╕реНрдпрд╛ рд╣реИред

рд▓рдХреНрд╖реНрдп рдХреЗ http://jsonplaceholder.typicode.com/ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд░реНрд╡рд░ рдкрддреЗ рдореЗрдВ рдмрджрд▓реЗрдВ
"proxy": { "/api": { "target": "http://jsonplaceholder.typicode.com/", "changeOrigin": true, "pathRewrite": { "^/api" : "" } } }

@wuyongdec рдореБрдЭреЗ рднреА рдЖрдкрдХреЗ рдЬреИрд╕реА рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ? рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХреИрд╕реЗ рд╣реБрдЖ?

рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдлреНрд░рдВрдЯ рдФрд░ рдмреИрдХ рдПрдВрдб! ! ! рдЧреИрд░-рдХреБрдХреАрдЬрд╝ рдкреНрд░рдорд╛рдгреАрдХрд░рдг, JWT рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди! !
рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЕрдХреНрд╖рдорддрд╛ рдХреЛ рд╣рд▓ рдХрд░реЗрдВ,
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, config.js рдореЗрдВ рдкреНрд░реЙрдХреНрд╕реА рд╕реЗрдЯ рди рдХрд░реЗрдВред рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рдЕрдорд╛рдиреНрдп рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдореЗрд░реА рдпреЛрдЬрдирд╛:
.env рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ (рдпрджрд┐ рдирд╣реАрдВ рддреЛ рд░реВрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрдирд╛рдПрдВ)
рдПрдкреАрдЖрдИ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╕рдордп, рд╕рд░реНрд╡рд░ рдХрд╛ рдкрддрд╛ рдкрдврд╝реЗрдВред (рдЕрдиреБрд░реЛрдз рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВред рдЬреЗрдПрд╕)

рдирдШрд┐рди/рдЕрдкрд╛рдЪреЗ/php рд╕рд░реНрд╡рд░ рдкреНрд▓рд╕
add_header рдПрдХреНрд╕реЗрд╕-рдХрдВрдЯреНрд░реЛрд▓-рдЕрдиреБрдорддрд┐-рдЙрддреНрдкрддреНрддрд┐ * рд╣рдореЗрд╢рд╛; ### (Nginx 1.7.5 рдХреЗ рдмрд╛рдж рд╕реЗ)

add_header рдПрдХреНрд╕реЗрд╕-рдХрдВрдЯреНрд░реЛрд▓-рдЕрдиреБрдорддрд┐-рд╡рд┐рдзрд┐рдпрд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдкреЛрд╕реНрдЯ рдХрд░реЗрдВ, рд╡рд┐рдХрд▓реНрдк, рд╣реЗрдб, рдкреБрдЯ;
add_header рдПрдХреНрд╕реЗрд╕-рдХрдВрдЯреНрд░реЛрд▓-рдЕрдиреБрдорддрд┐-рд╢реАрд░реНрд╖рд▓реЗрдЦ "рдкреНрд░рд╛рдзрд┐рдХрд░рдг, рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░";

рдлреНрд░рдВрдЯ-рдПрдВрдб рдлреЗрдВрдЪ:
рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓:'рдУрдорд┐рдЯ' // рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреБрдХреАрдЬрд╝ рдирд╣реАрдВ рднреЗрдЬреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдЕрдиреБрд░реЛрдз рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ
рд╣реИрдбрд░:{
рдкреНрд░рд╛рдзрд┐рдХрд░рдг: localStorage.getItem('login-token'),
}

рдЙрдирдореЗрдВ рд╕реЗ, "рдкреНрд░рд╛рдзрд┐рдХрд░рдг" рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╡рд┐рдзрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ

рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдЬреЛ рдХрд┐рдпрд╛ рдЙрд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдВред
рдпрджрд┐ рдбреЛрдореЗрди рдирд╛рдо рдЕрд╕рдВрдЧрдд рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдмреИрдХрдПрдВрдб рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдпрд╣ 200 400 500 рд╣реИ, рдЗрд╕рдореЗрдВ рдПрдХреНрд╕реЗрд╕-рдХрдВрдЯреНрд░реЛрд▓-рдЕрдиреБрдорддрд┐-рдЙрддреНрдкрддреНрддрд┐ рдФрд░ рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдлрд╝реЗрдЪ рд╣реЗрдбрд░ рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

{
  mode: 'cors',
  credentials: 'include',
}

Nginx рд╕рд░реНрд╡рд░ рдирд┐рдореНрди рд╢реАрд░реНрд╖рд▓реЗрдЦ рд▓рд┐рдЦрддрд╛ рд╣реИ

add_header Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Keep-Alive,User-Agent,Cache-Control,Content-Type,Authorization,sbid
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Origin: ф╜ачЪДхЯЯхРН

рдЗрд╕ рд╕рдордп, рдкреЛрд╕реНрдЯ рдбрд┐рд▓реАрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕реА рддрд░рд╣ рд╕рднреА рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ,
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдм рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рддреЛ 401 рд▓реМрдЯрддреЗ рд╕рдордп nginx рдиреЗ Access-Control-Allow-Origin рдФрд░ рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдЦреЛ рджреА, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк 401 (https://github.com/github/fetch/issues/201) рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛ рд╣реБрдИред # рдЬрд╛рд░реА рдЯрд┐рдкреНрдкрдгреА-141777867)
рд╕рдорд╛рдзрд╛рди, nginx рд╣рдореЗрд╢рд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
рд╕рд┐рдВрдЯреИрдХреНрд╕: | add_header рдирд╛рдо рдорд╛рди [рд╣рдореЗрд╢рд╛];
http, рд╕рд░реНрд╡рд░, рд╕реНрдерд╛рди, рдпрджрд┐ рд╕реНрдерд╛рди рдореЗрдВ рд╣реИ

server {
  listen       80;
  server_name  www.google.com;

  #charset koi8-r;
  #access_log  /var/log/nginx/host.access.log  main;

  location / {
    if ($request_method = 'OPTIONS') { 
      add_header Access-Control-Allow-Origin 'http://www.baidu.com' always;
      add_header Access-Control-Allow-Credentials 'true' always; 
      add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS' always;
      add_header Access-Control-Allow-Headers 'Keep-Alive,User-Agent,Cache-Control,Content-Type,Authorization,sbid' always;    
      return 200; 
    }

    root   /home/wwwroot/php;
    index  index.php index.html index.htm;
    try_files $uri $uri/ /index.php?$args;
  }

  location ~ \.php$ {
    add_header Access-Control-Allow-Origin 'http://www.baidu.com' always;
    add_header Access-Control-Allow-Credentials 'true' always; 
    add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS' always;
    add_header Access-Control-Allow-Headers 'Keep-Alive,User-Agent,Cache-Control,Content-Type,Authorization,sbid' always;  
    root /home/wwwroot/php/;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME           $document_root$fastcgi_script_name;
    include fastcgi_params;
  }  
}

server {
  listen       80;
  server_name  www.baidu.com;

  #charset koi8-r;
  #access_log  /var/log/nginx/host.access.log  main;

  location / {
    root   /home/wwwroot/view;
    try_files $uri $uri/ /index.html;
  }  
}
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

MiaoXingGua picture MiaoXingGua  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sorrycc picture sorrycc  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mclouvem picture mclouvem  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

yunfeit picture yunfeit  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

huyawei picture huyawei  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ