[ 
https://issues.apache.org/jira/browse/MYFACES-4672?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17856861#comment-17856861
 ] 

Werner Punz edited comment on MYFACES-4672 at 6/21/24 9:06 PM:
---------------------------------------------------------------

Ok the issue is very likely in the XHRRequestLevel2 code

 if (this._context._mfInternal.xhrOp === "multipartQueuedPost") {
            ret = new FormData(this._sourceForm);


FormData does not have the hasKey Function but the has function (seems this was 
not fully fixed when I coded this and they renamed it), we simply can identify 
the code parts which have problems with the hasKey and use has instead as 
fallback, so if one or the other is present we use either!

 


was (Author: werpu):
Ok the issue is very likely in the XHRRequestLevel2 code

 if (this._context._mfInternal.xhrOp === "multipartQueuedPost") {
            ret = new FormData(this._sourceForm);


FormData does not have the getKey Function, we simply have to add a hasKey 
function on the FormData class! This affects only the xhrLevel2 class, not the 
newer ones and very likely also not the iframe transport itself!


 

> Uncaught TypeError: G.hasKey is not a function
> ----------------------------------------------
>
>                 Key: MYFACES-4672
>                 URL: https://issues.apache.org/jira/browse/MYFACES-4672
>             Project: MyFaces Core
>          Issue Type: Bug
>    Affects Versions: 2.2.16
>            Reporter: Volodymyr Siedlecki
>            Assignee: Werner Punz
>            Priority: Major
>
> This affects 2.2 which I know is out of date, but I have a user of MyFaces 
> 2.2 who needs this bug fixed.
> I ported MYFACES-4606 to 2.2 here: 
> [https://github.com/apache/myfaces/pull/647]
> 4606 was applied to 2.3, so I applied the same fix to 2.2.  However, I didn't 
> realize that _AjaxRequestLevel2 was removed from 2.3 in this PR: 
> [https://github.com/apache/myfaces/pull/415/files]
> _AjaxRequestLevel2 still exists in the 2.2 codebase. 
> This mean that `if(targetBuf.hasKey(identifier))` was called from 
> _AjaxRequestLevel2's getFormData which does not decorate the FormData to 
> include the hasKey method – thus we get " G.hasKey is not a function". 
> [https://github.com/volosied/myfaces/blob/d5d28a0e6cae3ea22e021c64ecf474d6352bf900/api/src/main/javascript/META-INF/resources/myfaces/_impl/xhrCore/_AjaxRequestLevel2.js#L32-L44]
> This error is reproducible via multi-part form requests that use ajax. 
> What is the proper fix here? I'll create a draft PR for what I think is 
> correct. 
> Thanks!



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to