рдбреЛрдЬрд╝реЛ, JSONP рдФрд░ рдСрд▓-рдСрд▓-рдСрд▓

рд╢реБрдн рджреЛрдкрд╣рд░, рдкреНрд░рд┐рдп рд╣рдмрд░ред рд▓реЗрдбреА рдФрд░ рд╣рдмрд░ред рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреАрдЖрдИ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рд╖рдп рдХреЛ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдЪреВрд╕рд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдХрдореА рдЖрдИред
рдпрд╣ JSONP, SMD рдФрд░ Dojo рдШрдЯрдХ dojox.rpc.Service рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдЧрд╛ред
рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ? - рдХреГрдкрдпрд╛, рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗред

рдЪрд▓реЛ рд╕реНрдЯреЛрд╡ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

JSONP (JSON рдкреИрдбрд┐рдВрдЧ) рдпрд╛ "JSON рдкреИрдбреЗрдб" рдПрдХ JSON рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИ рдЬрдм рдПрдХ рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ рдПрдХ рдЗрдирдкреБрдЯ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдЪрд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕рд░реНрд╡рд░ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрд╡рдпрдВ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА рдбреЗрдЯрд╛ рдХреЛ рдЗрд╕рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдкрд░ рдЗрд╕ рдХреЛрдб рдХреЛ рдЬреЛрдбрд╝рдХрд░, рд╣рдо рдирд┐рдпрдорд┐рдд Ajax рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЙрд╕реА рдореВрд▓ рдкреНрд░рддрд┐рдмрдВрдз рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдПрд╕рдПрдордбреАред SMD (рд╕реЗрд╡рд╛ рд╕рдВрджреЗрд╢ рд╡рд░реНрдгрди) - JSON рднрд╛рд╖рд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдФрд░ рдЙрди рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП рдПрдХ рднрд╛рд╖рд╛ред
рдореИрдВ рдПрдХ рд╕рд░рд▓ smd рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛:
{ transport: "JSONP", envelope: "URL", target: "http://mysite.org/api/find", parameters: [ { name: "appid", optional: false, "default": "client" } ], services: { service1: { target: "http://mysite.org/api/find_image", parameters: [ { name: "query", type: "string", optional: false, "default": "" }, { name: "max_height", type: "integer", optional: true }, ] }, service2: { target: "http://mysite.org/api/find_video", parameters: [ { name: "query", type: "string", optional: false, "default": "" } ] }, } } 


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, smd рдлрд╝рд╛рдЗрд▓ рдХреЛ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдмреНрд▓реЙрдХред
рдореИрдВ рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ - рд╡реЗ рдЦреБрдж рдХреЗ рд▓рд┐рдП рдмреЛрд▓рддреЗ рд╣реИрдВ - рдореИрдВ рдХреЗрд╡рд▓ рдиреЛрдЯ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ dojox.rpc.Service рдШрдЯрдХ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░
рдкрд░рд┐рд╡рд╣рди рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реЗ рдПрдХ рдорд╛рди рд▓реЗ рд╕рдХрддрд╛ рд╣реИ: POST, GET, JSONP
рд▓рд┐рдлрд╛рдлрд╛ рдкреИрд░рд╛рдореАрдЯрд░ - рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ: URL, JSON, PATH

рдЕрдм рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдпрд╛ рдЗрд╕реЗ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП

 var smd = new dojox.rpc.Service("/smd/api_1.smd"); var d = smd.service1({query:"image_001"}); d.addCallback(function(result) { alert("gotcha! " + result); }); 


smd.service1 ({рдХреНрд╡реЗрд░реА: "image_001"})
рдпрд╣ рдкрдВрдХреНрддрд┐ рд╣рдореЗрдВ рдПрдХ рдЖрд╕реНрдердЧрд┐рдд рд╡рд╕реНрддреБ рд▓реМрдЯрд╛рдПрдЧреА рдЬрд┐рд╕рд╕реЗ рд╣рдо рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди (рдпрд╛ рдХрдИ) рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдм рд╣рдо рдЕрдкрдиреЗ рд╕реНрдерд╛рди рдХреЛ рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдХреЗ рдирд╛рдо рд╕реЗ рд╕реЗрд╡рд╛рдУрдВ рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВред

рдЯрд┐рдкреНрдкрдгреА:
рд╢реБрд░реВ рдХрд░рдирд╛

1. JSONP рдкрд░рд┐рд╡рд╣рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ dojo.io.script рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
2. dojox.rpc.Service рдШрдЯрдХ рдХреЛ dojo.io.script рд╕реЗ рдкрд╣рд▓реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ "рдХреЛрдИ рдкрд╛рдпрд╛ рдирд╣реАрдВ" рддреНрд░реБрдЯрд┐ рди рд╣реЛ
3. рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдПрдХ рдпреБрдЧреНрдорд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рдХреЗ рдмрд┐рдирд╛) рдХреЗ рд╢рд░реАрд░ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рдХреЙрд▓рдмреИрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рдорд╛рд░реЛрд╣ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП - habrahabr.ru/post/62314

рдЕрдВрддред

рдареАрдХ рд╣реИ, рдпрд╣ рд╕рдм рд╣реИ, рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╕реБрдзрд╛рд░реЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░, рд▓реЗрдЦ рдХреЛ рдкреВрд░рдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╢рд╛рдпрдж рдХреБрдЫ рдЕрдирджреЗрдЦреА рдХреА рдЧрдИ рд╣реИ)ред

Source: https://habr.com/ru/post/In140981/


All Articles